概述
原地排序,常数空间复杂度,平均时间复杂度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双指针快速排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复