归并排序2

def merge(array,low,mid,high):
    m,n = low,mid
    workplace = []
    while m<=mid-1 and n<=high:
        if array[m]<array[n]:
            workplace.append(array[m])
            m+=1
        else:
            workplace.append(array[n])
            n+=1
    while m<=mid-1:
        workplace.append(array[m])
        m+=1
    while n<=high:
        workplace.append(array[n])
        n+=1
    for i,elem in enumerate(workplace):
        array[low+i] = elem
    print 'array is: ',array

局部排序

def reMerge(array,low,high):  
    if low==high:
        return    
    else:                      
        mid = (low+high)/2  
        reMerge(array,low,mid)       
        reMerge(array,mid+1,high)
        merge(array,low,mid+1,high)

 

posted @ 2017-06-18 15:34  淡季的风  阅读(104)  评论(0)    收藏  举报