基于C#實現梳排序
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
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++) { //如果前者大于后者,則進行交換 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; } //在當前的step在除1.3 step = (int)Math.Floor(step / 1.3); } return list; } } } ———————————————— 版權聲明:本文為CSDN博主「神仙別鬧」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/s1t16/article/details/134640675 該文章在 2023/11/27 16:19:05 編輯過 |
關鍵字查詢
相關文章
正在查詢... |