1.主體: 兩個迴圈;
2.時間複雜度: o(n^2);
3.過程: 對於公升序,比較相鄰兩個數,如果第二個數小,則交換位置;
從數列後往前比較,最終第乙個數是最小的;
重複上述步驟;
demo:
#include#includeusing namespace std;
//氣泡排序
void my_swap(int& first, int& second)
void bubblesort(vector& vec) }}
int main()
; cout << "raw val is:\n";
for (auto i : arr)
cout << i << "\t";
cout << endl;
bubblesort(arr);
cout << "bubblesorted val is:\n";
for (auto i : arr)
cout << i << "\t";
cout << endl;
system("pause");
return 0;
}
輸出如下:
演算法基礎之氣泡排序
是讓最大的數浮動到陣列最後的位置,其次大的數浮動到陣列倒數第二個位置。當然,你也可以從大到小排序,也可以從後向前冒泡。其特徵操作是相鄰元素的比較和交換。bubble sort a for i a.length to 1 for j 1 to i ifa j a j 1 exchance a j an...
基礎演算法之氣泡排序
1.今天面試被問到最簡單的氣泡排序,氣泡排序看似簡單其實也不簡單,在此重新複習一下氣泡排序 氣泡排序的時間複雜度是n平方,如果陣列已經有序,可以進行優化,sort3方法在陣列有序的時候,只需要遍歷一次陣列,時間複雜度是n,空間複雜度只需要乙個int變數在交換的時候使用 public void sor...
演算法基礎之排序篇 氣泡排序
1 演算法描述依次比較相鄰的數劇,將小的數排前面,大的排後面。操作步驟 1 從第乙個元素開始,依次與後乙個數比較,小數放前,大數放後,結果是最大的放到了最後。2 對前n i個數重複 1 i從1至n 2,n為原序列大小。2 圖例 3 public void sort int data 4 穩定性及複雜...