函数如下:
def sort(unsorted):
less = []
equal = []
greater = []
if len(unsorted) < 1:
return unsorted
pivot = unsorted[-1]
for element in unsorted:
if element < pivot:
less.append(element)
if element == pivot:
equal.append(element)
if element > pivot:
greater.append(element)
return sort(less)+equal+sort(greater)
unsorted = [7 ,2, 1, 8, 6, 3, 5, 4]
print sort(unsorted)
我很难将其定义为快速排序或归并排序。从概念上讲,我认为它符合快速排序的定义:它使用一个枢轴将元素分成比枢轴更小和更大的子集,然后递归地对它们进行排序。但另一方面,它让我想起了合并排序,因为它递归地将给定列表分解为更小的 block ,然后将它们重新组合在一起(尽管围绕“枢轴”)。
那么这是快速排序还是归并排序?
最佳答案
Quicksort 分区,MergeSort 合并。
显然有一个分区过程(一侧是小键,另一侧是大键),并且显然没有合并(两个排序序列交织在一个序列中)。
关于python - 这是快速排序还是合并排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45641530/