快速排序是一种不稳定的排序方式,最坏O(n2),最好、平均O(nlogn),空间复杂度O(logn)
def quick_sort(lists, left, right):
if left >= right:
return lists
key = lists[left]
low = left
high = right
while left < right :
while left < right and lists[right] > key:
right -= 1
lists[left] = lists[right]
while left < right and lists[left] < key:
left += 1
lists[right] = lists[left]
lists[left] = key
quick_sort(lists,low,left-1)
quick_sort(lists,left+1,high)
if __name__ == '__main__':
lists = [3, 4, 2, 8, 9, 5, 1]
print('排序前序列为:',end='')
for i in lists:
print(i,end=' ')
print('\n排序后结果为:',end='')
for i in quick_sort(lists,0,len(lists)-1):
print(i,end=' ')```