氣泡排序我想初學程式設計的人都很熟悉,是我們大家最常使用到的,也是最簡單的排序,所以我也不過多的介紹了。
氣泡排序屬於交換排序是穩定的排序;
時間複雜度:最好情況:o(n) 最壞情況o(n2) 平均情況o(n2)
空間複雜度:o(1)
它的排序思想也很簡單我們簡單介紹一下:對於n個資料,從第乙個資料開始依次對相鄰的兩個資料進行比較,
按照從小到大的書順序,如果前面資料大於後面的進行交換,進行一輪後,最大的資料位於最後,然後對前n-1
個資料進行第二輪比較,直到只剩下的資料為1個為止。這就像氣泡一樣,輕氣泡不能在重氣泡之下的原則,開
始從下往上冒。
**如下:
#include void sortbubble(int par_array, int length)
} }}void bubblesort(int par_array, int length)
} }}
int main1()
; int len = sizeof(a) / sizeof(a[0]);
//bubblesort(a, len);
sortbubble(a, len);
for (i = 0; i < len; i++)
printf("\n");
return 0;
}
那麼該怎樣解決呢?
我想帶可以用乙個區域性變數 exchange 來記錄本次掃瞄時有沒有進行交換資料, 每次掃瞄之前 把 exchange 置為 0, 如果掃瞄時發生資料交換,則置為1,
如果沒有則說明已經排序完了則不需要進行下一輪了。
3 氣泡排序
屬於原址排序。1 思路 氣泡排序就是把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。每次遍歷完原陣列一次,最大的元素便在最後面。2 複雜度分析 2.1 時間複雜度 最好情況 正序有序,只需要比較n次。所以為o n 程式需加個flag標誌位,一次遍歷若是正序則break。最壞情...
排序3 氣泡排序 排序4 快速排序
交換類的排序有快速排序,氣泡排序 3.氣泡排序 3.1原理 設原資料為 5 2 9 1 第一趟從第乙個數字5開始arr j arr j 1 交換,小於等於不交換 5 2交換 2 5 9 1 5 9 不交換 2 5 9 1 9 1交換 2 5 1 9 最大數字9已經到最後 第二趟2 5不交換 2 5 ...
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...