Bubble Sort(氣泡排序)

2021-08-05 19:59:17 字數 547 閱讀 8253

設有一陣列,其大小為10個元素(int str[10])陣列內的資料是無序。現在要求我們通過程式設計將這個無序的陣列變成乙個從小到大排序的陣列(從下標為0開始)

你可以這樣理解:(從小到大排序)存在10個不同大小的氣泡,由底至上地把較少的氣泡逐步地向上公升,這樣經過遍歷一次後,最小的氣泡就會被上公升到頂(下標為0),然後再從底至上地這樣公升,迴圈直至十個氣泡大小有序。

在氣泡排序中,最重要的思想是兩兩比較,將兩者較少的公升上去

氣泡排序最壞情況的時間複雜度是o(n²)

核心**

template

void bubblesort( t arr , int n)

//n = newn;

// 優化,每一趟bubble sort都將最大的元素放在了最後的位置

// 所以下一次排序,最後的元素可以不再考慮

// 理論上,newn的優化是這個優化的複雜版本,應該更有效

// 實測,使用這種簡單優化,時間效能更好

n --;

}

氣泡排序 bubble sort

氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...

氣泡排序(Bubble Sort)

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...

氣泡排序 Bubble Sort

維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...