基于C#實(shí)現(xiàn)梳排序
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Xsl; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> list = new List<int>() { 8, 1, 4, 2, 9, 5, 3 }; Console.WriteLine("\n排序前 => {0}\n", string.Join(",", list)); list = CombSort(list); Console.WriteLine("\n排序后 => {0}\n", string.Join(",", list)); Console.Read(); } /// <summary> /// 梳排序 /// </summary> /// <param name="list"></param> /// <returns></returns> static List<int> CombSort(List<int> list) { //獲取最佳排序尺寸: 比率為 1.3 var step = (int)Math.Floor(list.Count / 1.3); while (step >= 1) { for (int i = 0; i < list.Count; i++) { //如果前者大于后者,則進(jìn)行交換 if (i + step < list.Count && list[i] > list[i + step]) { var temp = list[i]; list[i] = list[i + step]; list[i + step] = temp; } //如果越界,直接跳出 if (i + step > list.Count) break; } //在當(dāng)前的step在除1.3 step = (int)Math.Floor(step / 1.3); } return list; } } } ———————————————— 版權(quán)聲明:本文為CSDN博主「神仙別鬧」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/s1t16/article/details/134640675 該文章在 2023/11/27 16:19:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |