def quick_sort(data):
"""quick_sort"""
if len(data) >= 2:
mid = data[len(data)//2]
left,right = [], []
data.remove(mid)
for num in data:
if num >= mid:
right.append(num)
else:
left.append(num)
return quick_sort(left) + [mid] + quick_sort(right)
else:
return data
时间复杂度:
最好情况(待排序列接近无序)时间复杂度为O(nlog2n)
最坏情况(待排序列接近有序)时间复杂度为O(n2)
平均时间复杂度为O(nlog2n)