基本思想: 氣泡排序,類似於水中冒泡,較大的數沉下去,較小的數慢慢冒起來,假設從小到大,即為較大的數慢慢往後排,較小的數慢慢往前排。
直觀表達,每一趟遍歷,將乙個最大的數移到序列末尾。
1.比較相鄰的元素,如果前乙個比後乙個大,交換之。
2.第一趟排序第1個和第2個一對,比較與交換,隨後第2個和第3個一對比較交換,這樣直到倒數第2個和最後1個,將最大的數移動到最後一位。
3.第二趟將第二大的數移動至倒數第二位
…因此需要n-1趟;
**實現,(**參考資料)
時間複雜度: o(n^2)
空間複雜度: o(1)
穩定性:穩定
c++
#include
using
namespace std;
void
myswap
(int
& a,
int& b)
void
bubblesort
(int
* num,
int len)}}
}int
main()
;int len =
sizeof
(num)
/sizeof
(num[0]
);for(
int i =
0; i < len;
++i)
cout << endl;
bubblesort
(num, len)
;for
(int i =
0; i < len;
++i)
}
python
def
bubblesort
(nums)
:for i in
range
(len
(nums)-1
):for j in
range
(len
(nums)
-i-1):
if nums[j]
> nums[j+1]
: nums[j+1]
, nums[j]
= nums[j]
, nums[j+1]
return nums
排序(1) 氣泡排序
排序演算法是經久不衰的經典入門演算法,一般認為是,給定一組數,給出從小到大排序的結果。主要演算法有 選擇,插入,冒泡,歸併,希爾,基數,快速,桶排序等等。每種排序有其自身的特性,適合不同的場景。分析排序演算法主要從3個方面 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣...
排序 1 氣泡排序
目錄 1.什麼是氣泡排序 2.氣泡排序的關鍵點 3.氣泡排序應用 假設待排序列為9 6 4 2 7 8 5 3 1,要求是讓待排序列按遞增順序排列。氣泡排序就是對待排序列掃瞄一次,就可以使得最大的9就位。具體過程排序過程是 先9和6比較,比6大所以位置互換得到6 9 4 2 7 8 5 3 1,然後...
1 氣泡排序
氣泡排序 這裡採用公升序排序 是不斷比較臨近的兩個元素大小,若出現兩個元素為降序的 l i l i 1 則交換兩者的值。把最最小值冒泡至前面 根據判斷條件不同而不同 迴圈結束後,則是排序好的序列。我寫的程式是 每次都用前面的元素和後面的元素比較,若出現降序則交換。所以冒泡方式是,小的往前面移動。例如...