Hi,

the following code is adopted PseudoCode from Introduction to
Algorithms (Cormen et al). For some reason it can't get it to work. I
always get a index of out bounds exception or some weird result.
Secondly I'd like to know how to write this more pythonic. TIA.

import random
import listutil
import unittest

def merge(A, p, q, r):
        L = A[p:q]
        R = A[q+1:r]
        L.append(1001)
        R.append(1001)

        i=0
        j=0
        k=p
        for k in range(r-p+1):

                if L[i] <= R[j]:
                        A[k] = L[i]
                        i +=1
                else:
                        A[k] = R[j]
                        j +=1

def mergeSort(A,p,r):
        if p < r:
                q=(p+r)/2
                mergeSort(A,p,q)
                mergeSort(A,q+1,r)
                merge(A,p,q,r)

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to