排序 3 氣泡排序

2021-08-15 01:34:28 字數 843 閱讀 6368

氣泡排序我想初學程式設計的人都很熟悉,是我們大家最常使用到的,也是最簡單的排序,所以我也不過多的介紹了。

氣泡排序屬於交換排序是穩定的排序;

時間複雜度:最好情況: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,底部理解為...