1 氣泡排序

2021-09-11 17:32:26 字數 828 閱讀 1587

氣泡排序(這裡採用公升序排序)是不斷比較臨近的兩個元素大小,若出現兩個元素為降序的(l[ i ]>l[ i+1 ]),則交換兩者的值。把最最小值冒泡至前面(根據判斷條件不同而不同),迴圈結束後,則是排序好的序列。

我寫的程式是:每次都用前面的元素和後面的元素比較,若出現降序則交換。所以冒泡方式是,小的往前面移動。

例如: 23  54  33  65 

一趟排序(用index[ 0 ]和後面的元素比較):23  54  33  65

二趟排序(用index[ 1 ]和後面的元素比較):33  54  65

三趟排序(index[ 2 ]):54  65

時間複雜度:長度為n時,需要進行n-1次交換。在索引向前移動時,需要排序的序列長度不斷減1,所以是呈現等差數列形式的交換次數,最後為1次交換。一共需要進行n-1趟排序,可得:(n-1 + 1) *(n-1) /2。可得量級為n^2。

#include#include#includeusing namespace std;

int const c_n = 10;

void swap(int *a, int *b)

//時間複雜度n^2

void main()

; srand(time(null));

for (int i = 0; i < c_n;i++) //隨機生成10個數

for (int i = 0; i < c_n - 1; i++)

}for (int i = 0; i < c_n; i++)

cout << "\n";

} system("pause");

}

排序(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 氣泡排序

基本思想 氣泡排序,類似於水中冒泡,較大的數沉下去,較小的數慢慢冒起來,假設從小到大,即為較大的數慢慢往後排,較小的數慢慢往前排。直觀表達,每一趟遍歷,將乙個最大的數移到序列末尾。1.比較相鄰的元素,如果前乙個比後乙個大,交換之。2.第一趟排序第1個和第2個一對,比較與交換,隨後第2個和第3個一對比...