雞尾酒排序基於氣泡排序,雙向迴圈
還是看例子吧,給定待排陣列[2 3 4 5 1]
第一趟過去時的每一步
第一步迭代,2 < 3不換
[2 3 4 5 1]
第二步迭代,3 < 4不換
[2 3 4 5 1]
第三步迭代,4 < 5不換
[2 3 4 5 1]
第四步迭代,5 > 1交換
[2 3 4 1 5]
第一趟回來時的第一步,雞尾酒一次到頭後就回返回來,再到頭後再過去,來回比,乙個來回能排兩個數字
第五步迭代,1 < 5不交換
[2 3 4 1 5]
第六步迭代,1 < 4交換
[2 3 1 4 5]
第七步迭代,1 < 3交換
[2 1 3 4 5]
第八步迭代,2 > 1交換
[1 2 3 4 5]
排序完畢,順序輸出結果即可得[ 1 2 3 4 5]
如何判斷排序結束了?
假如一趟來回沒有交換任何數字,則表示該陣列已經有序了,可以設定了個變數表示有沒有交換過
static void cocktail_sort(int unsorted)
}for (int j = unsorted.length; j > 1; j--)}}
static void main(string args)
;selection_sort(x);
foreach (var item in x)
console.readline();
}
雞尾酒排序
氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...
雞尾酒排序
雞尾酒排序是一種定向的氣泡排序,也可以稱為攪拌排序 漣漪排序。是氣泡排序的一種變形。和氣泡排序的區別在於,雞尾酒排序採用了雙向比較並替換的原理。基本原理 第一步 宣告兩個臨時指標left和right,分別指向第乙個元素和最後乙個元素。第二步 每一輪比較時,從right往left方向查詢最大數,放到r...
雞尾酒排序
1.什麼是雞尾酒排序 雞尾酒排序,也稱定向氣泡排序 雙氣泡排序 攪拌排序 漣漪排序 來回排序 快樂小時排序,是氣泡排序的一種變形。2.與氣泡排序的區別 雞尾酒是雙向排序,可以得到較好的排序效能 3.排序過程 舉例 int arr new 第一趟排序 從左到右找到最大值放在最右端 第一次排序 2和4比...