演算法 氣泡排序(go語言)

2021-10-05 13:28:41 字數 801 閱讀 2413

氣泡排序,是從最後開始,兩兩對比,如果前面的數字大於後面的數字,則調換數字順序。

如下圖:

第一步:對比最後1位,和末2位,2<6,不操作。

接下來向前移動一位,對比末2,和末3 。1<2,不操作

接下來向前移動一位,對比末3,和末4 。

3>1,調換兩個元素在陣列中的位置,調換後的圖形如下:

繼續向前移動對比。

當第一輪結束時,圖形如下:

此時,整個陣列中,最小的數字移動到0號位。其他數字順序不變。

** 此時完成第一輪冒泡 **

我們需要排序的數字一共有9個,則,經過8輪排序,所有數字可以歸位。

此時,時間複雜度計算公式為:9+8+7+6+5+4+3+2 = (9+2)*8/2

表示如下o(n**2/2)

package main

// 5,7,9,4,8,3,1,2,6,3

// 氣泡排序

func

bubblesort()

iter_print

(sort_init...

)for i :=

0; i <

len(sort_init)-1

; i++}}

iter_print

(sort_init...)}

// 列印陣列

func

iter_print

(sort_list ...

int)

println()

}func

main()

Go 氣泡排序

思路 前乙個和後乙個比較,如果前乙個大於後乙個則互換值,第一輪把最大的值放到右邊,第二輪把第二大的值放到右邊第二個,一直到最後一輪,沒有換值則表明已經排好 陣列 第一輪 先拿14和3比較,大於所以換值,現在數組成了 然後14和12比較,大於就換值,現在數組成了 第二輪13和12比較,大於換值,現在數...

C語言排序演算法 氣泡排序演算法

氣泡排序是一種交換排序,基本思想是 相鄰兩兩比較,若反序則交換。定義交換操作函式 1 void swap int p,int i,intj 2 基本排序演算法 思想 i 0時,p i 依次與後面的元素比較,如果後面的元素小,則交換位置,繼續比較,直到將最小的元素交換到第乙個位置,再從第二個開始與後面...

go語言排序之選擇排序 氣泡排序 快速排序

即每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。package main import fmt 選擇排序 func main...