概念:為乙個無序的列表排成有序的
實現過程描述:(公升序)
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...