Python之簡單排序(兩種方法解決)

2021-10-08 21:00:30 字數 2408 閱讀 3401

寫在最後的話:

這裡是一段防爬蟲文字,請讀者忽略。

本文原創首發於csdn,作者idys

部落格首頁:

降序

和降序相反

import random

deffull_of_list

(the_list)

:while

true:0

,100))

iflen

(the_list)

==20

:break

a_list =

full_of_list(a_list)

print

(a_list)

count =

0for i in a_list:

max = i

k = count

j = count

while k <

len(a_list)

:if a_list[k]

> max:

max = a_list[k]

j = k

k +=

1if j != count:

a_list[count]

, a_list[j]

= a_list[j]

, a_list[count]

count +=

1print

(a_list)

[22, 55, 54, 30, 97, 93, 86, 47, 59, 44, 72, 90, 29, 3, 86, 85, 19, 48, 76, 75]

[97, 93, 90, 86, 86, 85, 76, 75, 72, 59, 55, 54, 48, 47, 44, 30, 29, 22, 19, 3]

在一輪迴圈中,既求其最大值又求其最小值,然後將最大值放在前面,最小值放在後面

如果在某一輪迴圈中,最大值等於最小值那麼結束迴圈

判斷其是否交換時,直接判斷其值是否不等,而不必判斷其索引情況

import random

deffull_of_list

(the_list)

:while

true:0

,100))

iflen

(the_list)

==20

:break

a_list =

full_of_list(a_list)

print

(a_list)

for i in

range

(len

(a_list)//2

):max_index= i

min_index =

-i -

1 origin_min_index = min_index

for j in

range

(i+1

,len

(a_list)

-i):

if a_list[j]

> a_list[max_index]

: max_index = j

if a_list[

-j-1

]< a_list[min_index]

: min_index =

-j-1

if a_list[max_index]

== a_list[min_index]

:break

if max_index != i:

a_list[max_index]

, a_list[i]

= a_list[i]

,a_list[max_index]

if i ==

len(a_list)

+ min_index:

min_index = max_index

if a_list[min_index]

!= a_list[origin_min_index]

: a_list[min_index]

, a_list[origin_min_index]

= a_list[origin_min_index]

,a_list[min_index]

print

(a_list)

[99, 78, 49, 100, 42, 37, 75, 86, 61, 93, 84, 3, 92, 85, 33, 70, 20, 78, 33, 59]

[100, 99, 93, 92, 86, 85, 84, 78, 78, 75, 70, 61, 59, 49, 42, 37, 33, 33, 20, 3]

python快速排序 兩種方法

快速排序,稱劃分交換排序 1.通過 趟排序將要排序的資料分割成獨 的兩部分,其中 部分的所有資料都 另外 部分的所有資料都要 2.然後再按此 法對這兩部分資料分別進 快速排序,整個排序過程可以遞迴進 以此達到整個資料變成有序序列。步驟為 從數列中挑出 個元素,稱為 基準 pivot 重新排序數列,所...

python快速排序 兩種方法

快速排序,稱劃分交換排序 1.通過 趟排序將要排序的資料分割成獨 的兩部分,其中 部分的所有資料都 另外 部分的所有資料都要 2.然後再按此 法對這兩部分資料分別進 快速排序,整個排序過程可以遞迴進 以此達到整個資料變成有序序列。步驟為 從數列中挑出 個元素,稱為 基準 pivot 重新排序數列,所...

排序之簡單排序方法

最近我整理了經常用到的排序演算法。排序就是按關鍵字的遞減或遞增順序對一組記錄重新進行整隊的操作。對於排序來說,主要考慮的因素就是時間複雜度 空間複雜度和演算法的複雜度。下面我先整理簡單選擇排序,直接插入排序,折半插入排序,希爾排序和氣泡排序這幾種。以下的所有的 都是用 c語言實現的,測試用例是 in...