回覆列表
  • 1 # LED景觀亮化專家

    氣泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較,就選出最大的數;經過第2輪比較,就選出次大的數,以此類推。

    #include<stdio.h>#include<stdlib.h>#define N 8void bubble_sort(int a[],int n);//一般實現void bubble_sort(int a[],int n)//n為陣列a的元素個數{//一定進行N-1輪比較for(int i=0; i<n-1; i++){//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}}}//最佳化實現void bubble_sort_better(int a[],int n)//n為陣列a的元素個數{//最多進行N-1輪比較for(int i=0; i<n-1; i++){bool isSorted = true;//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){isSorted = false;int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}if(isSorted) break; //如果沒有發生交換,說明陣列已經排序好了}}int main(){int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};bubble_sort(num, N); //或者使用bubble_sort_better(num, N);for(int i=0; i<N; i++)printf("%d ", num[i]);printf("\n");system("pause");return 0;}

    供參考

  • 中秋節和大豐收的關聯?
  • 空調安裝怎麼排氣和怎麼收氟?