python实现归并排序_Python归并排序实例

针对拆分的列表进行排序,代码如下:

def guibing(list1):

n = len(list1)

print (list1)

if n==1:

return list1

half = n//2

left_res = guibing(list1[:half])

right_res = guibing(list1[half:])

return mergersort(left_res,right_res)

def mergersort(a,b):

c=[]

llen = len(a)

rlen = len(b)

h =0

j=0

while j< llen and h< rlen :

if a[j]

c.append(a[j])

j+=1

else:

c.append(b[h])

h+=1

if j == len(a): #这里不能简单比较a、b长度

for i in b[h:]:

c.append(i)

else:

for i in a[j:]:

c.append(i)

return c

if __name__ == '__main__':

list1 = [7,9,3,4,5,8]

print (guibing(list1))

#print (list1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值