日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典排序算法 - 鸡尾酒排序Cocktail sort

發布時間:2023/11/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典排序算法 - 鸡尾酒排序Cocktail sort 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

經典排序算法 - 雞尾酒排序Cocktail sort

雞尾酒排序基于冒泡排序,雙向循環

還是看例子吧,給定待排數組[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){bool swapped = false;do{for (int i = 0; i < unsorted.Length - 1; i++){if (unsorted[i] > unsorted[i + 1]){int temp = unsorted[i];unsorted[i] = unsorted[i + 1];unsorted[i + 1] = temp;swapped = true;}}swapped = false;for (int j = unsorted.Length; j > 1; j--){if (unsorted[j] < unsorted[j - 1]){int temp = unsorted[j];unsorted[j] = unsorted[j - 1];unsorted[j - 1] = temp;swapped = true;}}} while (swapped);}static void Main(string[] args){int[] x = { 6, 2, 4, 1, 5, 9 };selection_sort(x);foreach (var item in x){Console.WriteLine(item);}Console.ReadLine();}

?

返回主目錄 [經典排序算法][集錦]

轉載于:https://www.cnblogs.com/kkun/archive/2011/11/23/cocktail_sort.html

總結

以上是生活随笔為你收集整理的经典排序算法 - 鸡尾酒排序Cocktail sort的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。