基于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 编辑过 |
关键字查询
相关文章
正在查询... |