十大排序演算法之氣泡排序

2021-10-02 16:28:05 字數 957 閱讀 2070

整理下最近學習的演算法,也方便有需要的人檢視

簡單排序:插入排序、選擇排序、氣泡排序(必學)

分治排序:快速排序、歸併排序(必學)

分配排序:桶排序、基數排序

樹狀排序:堆排序(必學)

其他:計數排序(必學)、希爾排序

原理:通過比較相鄰的兩個元素的大小實現排序,如果後邊的元素大於前面的元素,那麼就交換元素,這樣每一趟冒泡都能找到最大乙個元素並放到最後。

phpcode實現

$data

=array(2

,1,3

,9,4

,6,5

,8,7

);$datacount

=count

($data);

for($i=

0;$i<

$datacount-1

;$i++)

}if(!

$isswap)}

print_r

($data

);

gocode實現

package main

import

"fmt"

func

main()

datanum :=

len(data)

for i :=

0; i < datanum -

1; i++}if

!isswap

} fmt.

println

(data)

}

穩定性:它是指對同樣的資料進行排序,會不會改變它的相對位置。冒泡是比較兩個相鄰的元素的大小,所以不會破壞穩定性。

空間複雜度:原地排序,故為o(1)

時間複雜度:由於巢狀了2層迴圈,所以複雜度為

平均情況:o(n²)

最壞情況:o(n²)

最好情況:o(n)

十大排序演算法之氣泡排序

氣泡排序是一種簡單的排序方法。基本的演算法思想就是對要排序的一組資料進行一遍遍的遍歷,每次遍歷都對相鄰的元素進行比較且調整順序,直到這組資料沒有需要調整的地方,排序完成。下面先用文字敘述一下該排序演算法 公升序 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個,從頭一直比到尾,這樣最終,隊尾...

十大排序演算法之氣泡排序1

氣泡排序是最簡單的排序演算法,通過比較相鄰的兩個數字,如果前面的比後面的大則交換位置,否則不變。因此外層迴圈需要n 1次,因為每次比較的是兩個數字,到倒數第二個則可以停止比較,這一次迴圈結束。同時外層每迴圈一次則有乙個數排序完成,因此內層迴圈n 1 i,i為外層的迴圈數,如下。def bsort a...

python十大排序演算法 氣泡排序

演算法描述 是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法步驟 比較相鄰的元素。如果第...