四种排序结果都一样吗
运行下面这段程序:
def bubble(a):
b = list(a)
n = len(b)
for i in range(n - 1):
for j in range(n - 1 - i):
if b[j] > b[j + 1]:
b[j], b[j + 1] = b[j + 1], b[j]
return b
def insertion(a):
b = list(a)
for i in range(1, len(b)):
key = b[i]
j = i - 1
while j >= 0 and b[j] > key:
b[j + 1] = b[j]
j -= 1
b[j + 1] = key
return b
def merge(left, right):
out = []
i = 0
j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
out.append(left[i])
i += 1
else:
out.append(right[j])
j += 1
while i < len(left):
out.append(left[i])
i += 1
while j < len(right):
out.append(right[j])
j += 1
return out
def msort(a):
if len(a) <= 1:
return list(a)
m = len(a) // 2
return merge(msort(a[:m]), msort(a[m:]))
A = [17, 24, 15, 13, 23]
same = (bubble(A) == insertion(A) == msort(A) == sorted(A))
print(same)
全部评论