原地排序,常数空间复杂度,平均时间复杂度O(logN),最差时间复杂度O(N2)
def QuickSort(data, start, end):
if start<end:
i, j = start, end
anchor = data[i]
while i != j :
while data[j]>=anchor and j>i:
j -= 1
# when data[j]<anchor
if j>i:
data[i] = data[j]
i += 1
while data[i]<=anchor and i<j:
i += 1
if i<j:
data[j] = data[i]
j -= 1
data[i] = anchor
QuickSort(data, start, i-1)
QuickSort(data, i+1, end)
import random
data = [random.randint(-10, 10) for _ in range(10)]
QuickSort(data, 0, len(data)-1)
print(data)
最后
以上就是沉默大白最近收集整理的关于python双指针快速排序的全部内容,更多相关python双指针快速排序内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复