Python学习内容整理

Python 数组快速排序的实现

2020-05-18  本文已影响0人  Lorence

''
快速排序算法,采用分而治之的策略。它的基本思想是通过一趟排序将要排序的数据
分割成独立的两部分,其中一部分的所有数据,都比另一部分的所有数据都要小。然后
再按此方法,对这两部分的数据进行快速排序,整个排序的过程中递归进行。以此到整个数据变成有序。 下面是实现的代码:
'''
def quicksort(array):
if len(array)<2:
return array
else:
pivot=array[len(array)//2] #在数列中,选择一个元素作为基准,或者叫比较值
array.remove(pivot) #在原数组中把比较值移除
less,greater=[],[] #定义基准值左右两个列表
for i in array:
if i<=pivot: #小于基准值的放一侧
less.append(i)
else:
greater.append(i) #大于基准值的放另一侧
return quicksort(less)+[pivot]+quicksort(greater) #使用迭代进行比较

print(quicksort([30,24,5,58,18,36,12,42,39]))

输出为:
[5, 12, 18, 24, 30, 36, 39, 42, 58]

上一篇下一篇

猜你喜欢

热点阅读