from random import shuffle
def hoarePartition(array, p, r):
x = array[p]
i = p
j = r
while True:
while array[j] > x:
j -= 1
while array[i] < x:
i += 1
if i < j:
array[i], array[j] = array[j], array[i]
i += 1
j -= 1
else:
return j
def quickSort(array, p, r):
if p < r:
division = hoarePartition(array, p, r)
quickSort(array, p, division)
quickSort(array, division+1, r)
l = list(range(10))
shuffle(l)
print(l)
##############
quickSort(l, 0, len(l)-1)
##############
print(l)
Hoare quick sort. Θ(nlgn)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 算法相关GitHub持续更新,欢迎打脸~ 排序算法之选择排序 时间复杂度:O(n2) 空间复杂度:O(1) 是否稳...
- Merge-sort, is ideally suitedfor very large data sets, wh...
- 1101.Quick Sort 题目分析 Input:第一行:一个正整数N(N<=100000)第二行:N个互不相...