重溫演算法導論(三) 氣泡排序

2021-08-21 05:21:54 字數 727 閱讀 3873

氣泡排序原理簡單,從最後的元素與前面的元素比較,小於則交換,最後最小的在最左邊

偽**實現如下:

for i ← 1 to length[a] //實際陣列的下標從0開始

do for j ← length[a] downto i + 1

do if a[j] < a[j - 1]

then exchange a[j] ↔ a[j - 1]

實際**實現如下,加入泛型,

template void exchanget(t &a, t &b)

templatevoid bubblesort(t a, int n)

}}

int main(int argc, char* argv)

; bubblesort(szbuf, 5);

}

改進版本偽**:

for i ← 1 to length[a]

bchange = false

do for j ← length[a] downto i + 1

do if a[j] < a[j - 1]

then exchange a[j] ↔ a[j - 1]

bchange = true

if bchange is false

break forloop

重溫演算法導論(六) 堆排序

堆排序,思想就是先建立最大堆,然後從最大堆中取出最大數,作為陣列的最後乙個資料,重複並把資料取完。排序的陣列結構,包含堆陣列的長度,有效的堆大小 和堆資料 a每個節點對應的父節點,左子節點,右子節點 維護最大堆的性質,先假定先假定left i 和right i 為最大堆,maxheapify a,2...

氣泡排序(重溫經典演算法系列)

單個元素時肯定是有序的 故首元素單獨有序,從 1,n 為待排元素所在的區間 i 控制 n 1輪冒泡 即執行一系列兩兩元素對比的操作 第 i 輪能夠選出第 i 大 或者小 的元素值,n 1輪 選出 n 1 個較大 或者小 值之後,整個序列即可有序 for int i 1 i n i 外層i 控制 n ...

重溫PHP之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。這個演算法的名字由來是因為...