虽说python写程序可以非常简洁,但是初学python写一个归并排序还是一股子c味
# -*- coding: utf-8 -*- def mergesort(l, p, r): if p < r: q = (p+r)/2 mergesort(l, p, q) mergesort(l, q+1, r) merge(l, p, q, r) def merge(l, p, q, r): l1 = l[p:q+1] l2 = l[q+1:r+1] for x in range(p, r+1): if (len(l1) is not 0) & (len(l2) is not 0): if l1[0] < l2[0]: l[x] = l1[0] l1.pop(0) else: l[x] = l2[0] l2.pop(0) elif len(l1) is 0: l[x] = l2[0] l2.pop(0) else: l[x] = l1[0] l1.pop(0) l = [9, 8, 7, 7, 5, -3, 9.9] mergesort(l, 0, len(l)-1) for x in l: print x,
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220705.html原文链接:https://javaforall.net
