快速排序 降序 python

2021-08-09 11:10:33 字數 780 閱讀 8074

def

partition_desc

(a, p, r):

if r>p:

#用來指示i = p-1

#用來移動遍歷

j = p

#主元素

x = a[r]

#遍歷[p, r-1]區間

for j in range(p, r):

if a[j]>=x:

#移動分割槽指示游標, 增加乙個位置

i += 1

#在分割槽最後乙個位置加入分割槽元素

a[i],a[j] = a[j],a[i]

#現在, 任意e1∈a[p, i], e1>=x; 任意e1∈a[p, r-1], e1#交換a[i+1]和a[r], 產生新的過程區域

a[i+1],a[r] = a[r],a[i+1]

q = i + 1

return a, q

else:

return a, p

defquick_sort_desc

(a, p, r):

a, q = partition_desc(a, p, r)

if p1)

a = quick_sort_desc(a, q+1, r)

return a

else:

return a

a = [2,3,12,11]

a = quick_sort_desc(a, 0, len(a)-1)

print(a)

c 降序排序

排序可選sort 但使用sort 時要有 include,sort 只能公升序排序。要想使用降序排序,我用過的有三種方法。假設有vectora,對a中的數進行降序排列。1.sort a.rbegin a.rend 2.sort a.begin a.end greater 使用greater 時要有 ...

python快速排序排序 python快速排序

import random def rand n for i in range n yield random.randint 0,1000 建立乙個隨機數列表 def createlist n lists for i in rand n return lists 挖坑法快速排序 def quick ...

氣泡排序公升序降序

氣泡排序 時間複雜度 o n2 實 質 把小 大 的元素往前 後 調 氣泡排序演算法的原理如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次...