冒泡排序是常見的排序方法,算法思路是經過兩層循環逐個將最大數放到底部,直到所有排列完畢。
若是要逆序排列,在內層循環中把最小數放到底部便可。
代碼:算法
#include "stdafx.h" #include "stdlib.h" #include"conio.h" #include <stdio.h> int main(int argc, char* argv[]) { int i = 0; int j = 0; int temp; int count = 0; int arr[10]; int n = sizeof(arr)/sizeof(arr[0]); //生成一個隨機數組 for(i=0;i<n;i++){ arr[i] = rand(); } printf("排列前的數組:"); for ( int i=0; i< n; i++) { printf("%d, ",arr[i]); } /** * 兩輪循環: * 內輪實現最大數放到最後; * 外輪循環記錄剩餘數,讓內輪循環每次操做剩餘的未經排列的數字。 */ for ( i=0; i< n-1; i++) { for ( j=0; j< n-1-i; j++) { if(arr[j]>arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1]= temp; } count++; } } printf("排列後的數組:"); for ( int i=0; i< n; i++) { printf("%d, ",arr[i]); } printf("\n循環總輪數: %d\n",count); system("pause"); return 0; }