排序(一)氣泡排序

2022-02-13 07:51:28 字數 1546 閱讀 1902

參考文章:

氣泡排序(bubble sort)

原理:依次比較兩個相鄰的元素,將值大的元素交換至右端。首先比較第1個和第2個數,將小數放前,大數放後。以此類推。直至全部排序完成。n個數字要排序完成,總共進行n-1趟排序,每i趟的排序次數為(n-i)次。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端,故名氣泡排序。

平均時間複雜度:o(n2)

最好時間複雜度:o(n2)

最壞時間複雜度:o(n2)

空間複雜度:o(1)

穩定性:穩定

舉例說明:要排序陣列:int arr=;  

第一趟排序:

第一次排序:6和3比較,6大於3,交換位置:  3  6  8  2  9  1

第二次排序:6和8比較,6小於8,不交換位置:3  6  8  2  9  1

第三次排序:8和2比較,8大於2,交換位置:  3  6  2  8  9  1

第四次排序:8和9比較,8小於9,不交換位置:3  6  2  8  9  1

第五次排序:9和1比較:9大於1,交換位置:  3  6  2  8  1  9

第一趟總共進行了5次比較, 排序結果:      3  6  2  8  1  9

第二趟排序:

第一次排序:3和6比較,3小於6,不交換位置:3  6  2  8  1  9

第二次排序:6和2比較,6大於2,交換位置:  3  2  6  8  1  9

第三次排序:6和8比較,6大於8,不交換位置:3  2  6  8  1  9

第四次排序:8和1比較,8大於1,交換位置:  3  2  6  1  8  9

第二趟總共進行了4次比較, 排序結果:      3  2  6  1  8  9

第三趟排序:

第一次排序:3和2比較,3大於2,交換位置:  2  3  6  1  8  9

第二次排序:3和6比較,3小於6,不交換位置:2  3  6  1  8  9

第三次排序:6和1比較,6大於1,交換位置:  2  3  1  6  8  9

第二趟總共進行了3次比較, 排序結果:         2  3  1  6  8  9

第四趟排序:

第一次排序:2和3比較,2小於3,不交換位置:2  3  1  6  8  9

第二次排序:3和1比較,3大於1,交換位置:  2  1  3  6  8  9

第二趟總共進行了2次比較, 排序結果:        2  1  3  6  8  9

第五趟排序:

第一次排序:2和1比較,2大於1,交換位置:  1  2  3  6  8  9

第二趟總共進行了1次比較, 排序結果:  1  2  3  6  8  9

public

static

void bubblesort(int

nums) }}

}

view code

排序一 氣泡排序

氣泡排序是一種交換排序。什麼是交換排序呢?交換排序 兩兩比較待排序的關鍵字,並交換不滿足次序要求的那對數,直到整個表都滿足次序要求為止。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算...

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...

排序演算法 一 氣泡排序

排序的演算法有很多,例如直接插入排序,希爾排序,氣泡排序,選擇排序,快速排序,堆排序等等。最簡單基礎就是氣泡排序了,關於排序hi有乙個系列。今天是第一篇,主要講氣泡排序演算法思想以及從各個方面對它進行優化。氣泡排序 原理舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就...