python实现归并排序_归并排序--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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值