冒泡排序: 將一個整形數組中的元素按照從小到大的順序排列
具體方法:數組元素先進行一次依次循環比較,找出最大的元素,放在數組最右邊, 嵌套循環時要注意循環次數的控制, 進行n-1趟排序後,就ok。
下面是代碼實現:
#include<stdio.h> #include<stdlib.h> int * bubble_sort(int arr[],int sz) { int i = 0; int j = 0; int flag = 1;//這裏聲明一個標誌,爲了下面內層循環中減少數組元素比較的次數 //假設標誌爲1時,數組元素爲有序的 int tmp = 0; for(i = 0;i<sz-1;i++) { for(j = 0;j<sz-1-i;j++) { if(arr[j]>arr[j+1]) { tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; flag = 0; } } if(flag==1) return arr; } return arr; } int main() { int arr[] = {5,0,1,2,3,4,9,7,6,8}; int i = 0; int *ret = bubble_sort(arr,sizeof(arr)/sizeof(arr[0])); for(i = 0;i<10;i++) { printf("%d ",arr[i]); } system("pause"); return 0; }