屬於原址排序。
(1)思路:
氣泡排序就是把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。每次遍歷完原陣列一次,最大的元素便在最後面。
(2)複雜度分析:
(2.1)時間複雜度:
最好情況: 正序有序,只需要比較n次。所以為o(n)。程式需加個flag標誌位,一次遍歷若是正序則break。
最壞情況: 逆序有序,需要比較(n-1)+(n-2)+…+1次, o(
平均情況: o(
(2.2)空間複雜度:
o(1)。
(3)穩定性:
氣泡排序就是把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法。
**片段:
void bubble_sort(int arr,int len)
} }}
排序 3 氣泡排序
氣泡排序我想初學程式設計的人都很熟悉,是我們大家最常使用到的,也是最簡單的排序,所以我也不過多的介紹了。氣泡排序屬於交換排序是穩定的排序 時間複雜度 最好情況 o n 最壞情況o n2 平均情況o n2 空間複雜度 o 1 它的排序思想也很簡單我們簡單介紹一下 對於n個資料,從第乙個資料開始依次對相...
3種氣泡排序
第一種 最基本的解法 void bubble sort1 int a,int size if for while 第一種解法每次從第乙個元素開始把第i 1個最大的元素放到它應有的位置,而每次卻是比較所有的n個元素,明顯每次和之前已經排好的元素比較屬於多餘,引出解法2 每次排序後n自減1。第二種 與咱...
Python氣泡排序(3)
python 氣泡排序 3 在未排序的數中,通過兩兩比較 換位 的方式,將最大的數移至末尾 n個數排序,則需要執行n 1輪,第1輪比較n 1次,後續每輪比上一輪少比較1次 本例中 第1輪將9放到正確位置 第2輪將8放到正確位置 第9輪將1放到正確位置 此方法中,兩個位置數字比較時,有乙個位置是不變的...