起泡排序【模板】
這個起泡排序的 for 循環比較奇怪,注意。。。鄧老師寫的還是為了開發我們的思維。。。
另外就是 swap 函數在 using namespace std; 中有現成的函數。。。
#include <iostream> using namespace std; void bubblesort(int A[],int n) { for(bool sorted=false;sorted=!sorted;n--) for(int i=1;i<n;i++) //自左向右,檢查 A[0,n) 的相鄰元素 if(A[i-1]>A[i]) //逆序 { swap(A[i-1],A[i]); sorted=false; } } int main() { int i; int V[10]={11, 23, 19, 7, 17, 5, 3, 13, 2, 29}; printf("排序前:"); for(i=0;i<10;i++) printf("%d ",V[i]); printf("\n"); //起泡排序 bubblesort(V,10); printf("排序後:"); for(i=0;i<10;i++) printf("%d ",V[i]); printf("\n"); return 0; }
運行結果為:
排序前:11 23 19 7 17 5 3 13 2 29
排序後:2 3 5 7 11 13 17 19 23 29
最後更新:2017-04-03 14:54:08