// 原理:每次兩個數進行比較,從數組的前兩個元素開始,若是前面的數 > 後面的數,就交換
第一輪會求出一個最大值,而且放在最後面,
而後 依此類推,通過最多N-1輪,排序完成。數組
///////bubble_sort.c/// #include<stdio.h> #define N 5 int main(int argc, const char *argv[]) { int a[N]; int temp;//臨時的中間變量 int i,j; printf("請輸入%d個數值:\n",N); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++)//外循環控制比較輪次,n個數比較n-1輪. { for(j=0;j<N-1-i;j++)//內循環n個數兩兩比較,比較n-1-i次. { if(a[j]>a[j+1])//前一個數大於後一個數交換 { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } /* //利用作差思想,不借助中間變量交換值 a[j]=a[j]-a[j+1];//保留差值 a[j+1]=a[j+1]+a[j];//加差值 a[j]=a[j+1]-a[j];//減差值 //若不懂能夠舉例a=10;b=3;交換兩個值同樣的,方法同樣。 */ //遍歷數組 for(i=0;i<N;i++) printf("%d--<",a[i]); printf("\n"); return 0; }