'''
快速排序算法,时间复杂度O(nlogn),空间复杂度O(logn)(递归中需要存储数据),不稳定的排序算法
'''
def quickSort(array):
n = len(array)
def recur(array, l, r):
if l >= r:
return
pivot = array[l]
i = l
j = r
while i < j:
while j > i and array[j] >= pivot:
j -= 1
if j > i:
array[i] = array[j]
i += 1
while i < j and array[i] < pivot:
i += 1
if i < j:
array[j] = array[i]
j -= 1
array[i] = pivot
recur(array, l, i-1)
recur(array, i+1, r)
return
recur(array, 0, n-1)
return array
array = [1, 5, 3, 10, 15, 9, 12, -6, 0, 6, 5]
print(quickSort(array)) # [-6, 0, 1, 3, 5, 5, 6, 9, 10, 12, 15]
快速排序算法
最新推荐文章于 2025-05-23 18:01:55 发布