归并排序--Python实现

核心思想:将数组不断的分成两组,当组内只有一个元素时,这个组便是有序数组,然后再合并有序数组。

def merge(array,start,mid,end):
    temp = []
    i,j = start , mid+1
   
    while (i<= mid and j<=end):
        if array[i] >= array[j]:
            temp.append(array[j])
            j+=1
        else:
            temp.append(array[i])
           
            i+=1  
    while(i<= mid):
        temp.append( array[i])
        
        i+=1
    while(j<=end):
        temp.append( array[j])
        j+=1
    print start
    print array
    print temp
    for i in range(0,len(temp)):
        array[start+i] = temp[i]
def merge_sort(array,start,end):
    if(start<end):
        mid = (start + end)/2
        merge_sort(array,start,mid)
        merge_sort(array,mid+1,end)
        merge(array,start,mid,end)

if __name__ == "__main__":
    array = [2,1,3,3,6,5,4]
    merge_sort(array,0,len(array)-1)
    print array
            
        
    
    




©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容