基本原理(升序):對于給定的N個數(shù)據(jù),從第一個數(shù)據(jù)開始依次對相鄰的兩個數(shù)據(jù)進行比較,數(shù)據(jù)大于后面時,交據(jù)位置,進行一輪比較和位置交換后,最大的數(shù)將位于第N 位;再對前(N-1)個數(shù)據(jù)進行比較和位置交換;重復該過程直至比較的數(shù)據(jù)只剩下最后一個。
復雜度:平均時間復雜度為O(N^2)
代碼實現(xiàn)(C語言)
void BubbleSort(int *a, int n){ int i , j; int temp = 0; for(i=0; i<n; i++) { for(j=0; j<n-i-1; j++) { if(a[j+1] < a[j]) { temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } }}int main(){ int i; int a[] = {2,5,1,4,6,8,3,9,7}; int n = sizeof(a)/sizeof(a[0]); BubbleSort(a,n); for(i=0; i<n; i++) {新聞熱點
疑難解答