Python實現幾種簡單的排序演算法

2022-07-05 00:12:17 字數 755 閱讀 7072

概念:為乙個無序的列表排成有序的

實現過程描述:(公升序)

1.比較相鄰的元素,如果第乙個比第二個大,就交換他們的位置

2.對每一對相鄰元素重複1的工作,從開始第一隊到最後一對,最後結束的時候最大的數會在後面

3.針對所有元素重複1,2的工作,除了最後乙個數,因為最後的數最大,省略這個過程

4.持續每次對越來越少的元素重複上面的步驟,知道沒有任何一對數字需要比較

複雜度: 時間複雜度為o(n^2)

**實現:

#

給定乙個列表

list = [11,54,3243,323,3,82,121,33,4,5,7,213,51]

#氣泡排序

for i in range(1,len(list)):

found =false #

定義乙個變數為false

for n in range(len(list)-i):

if list[n]>list[n+1]:

#當出現逆序交換下表n和n+1的位置

temp =list[n]

list[n] = list[n+1]

list[n+1] =temp

found =true #

當出現逆序時,改變變數值為true 如果未發現逆序則表示排序已經完成

ifnot found:#

當found值為false,直接跳出迴圈

break

print(list)

python實現的幾種排序演算法

此演算法為插入排序中的 直接插入排序 當然這是對於n很小的情況,但是當n很大的時候,可以用折半插入 就是對於直接插入排序的乙個改進,對於前乙個序列用直接插入排序 後面就不用這樣了,因為前面已經是乙個有序序列,可以折半方式提高 查詢效率 a b none 插入列表 insert list 7,3,5,...

python排序演算法的幾種實現

1 氣泡排序 def bubble sort arr n len arr for i in range n for j in range n i 1 if arr j arr j 1 arr j arr j 1 arr j 1 arr j return arr a 1,4,7,3,2,24,33 s...

幾種簡單的排序

今天檢視了arrays.sort a 的源 發現好複雜,根據a的長度不同,arrays.sort a 會呼叫不同的排序方法。簡單複習了下 快速排序 很簡單,把比某個數大的放右邊,小的放左邊。private static int partition int n,int left,int right i...