冒泡排序的实现
代碼
/* * 冒泡排序 * 參數: 參與排序的數組, 數組元素個數 */ void BubbleSort(int R[], int n) {int i, j;bool flag;for(i = n-1; i>=1; i--){flag = false; //用于標記本次循環是否發生交換for(j=1; j<=i; j++)if(R[j-1]>R[j]){//交換R[j] ^= R[j-1] ^= R[j] ^= R[j-1];flag = true;}if(!flag) return;}}原理
冒泡排序是通過一系列交換操作完成的。首先比較第一個數字與第二個數字,若第一個大則交換;然后比較第二個和第三個數字,若第二個大,則交換;之后再比較前三個數字,進行排序;依次類推
冒泡排序的結束標志是在一趟排序的過程中沒有交換
即在一次對該數組遍歷中沒有發生數字交換,等同于R[j-1] <= R[j]恒成立,由不等式的傳遞性可知,該序列有序,所以無需排序,執行return
總結
- 上一篇: 链栈的操作
- 下一篇: Typecho给文章设置永久链接