博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用几种常用排序方法对C#数组进行排序的代码
阅读量:6353 次
发布时间:2019-06-22

本文共 3279 字,大约阅读时间需要 10 分钟。

工作之余,把写代码过程中比较重要的一些代码段收藏起来,如下的代码是关于使用几种常用排序方法对C#数组进行排序的代码,希望能对各朋友有帮助。

using System;   namespace DataStruct   {       public class Sorter       {          public static void BubbleSort(int[] list)          {              for (int i = 0; i < list.Length; i++)              {                  for (int j = i; j < list.Length; j++)                  {                      if (list[i] < list[j])                      {                         int temp = list[i];                         list[i] = list[j];                         list[j] = temp;                     }                 }             }         }         public static void InsertionSort(int[] list)         {             for (int i = 1; i < list.Length; i++)              {                 int t = list[i];                 int j = i;                 while ((j > 0) && (list[j - 1] > t))                 {                     list[j] = list[j - 1];                     --j;                 }                 list[j] = t;             }         }         public static void SelectionSort(int[] list)         {             int min;             for (int i = 0; i < list.Length - 1; i++)             {                 min = i;                 for (int j = i + 1; j < list.Length; j++)                 {                     if (list[j] < list[min])                         min = j;                 }                 int t = list[min];                 list[min] = list[i];                 list[i] = t;             }         }        public static void ShellSort(int[] list)        {             int inc;             for (; inc > 0; inc /= 3)             {                 for (int i = inc + 1; i <= list.Length; i += inc)                 {                     int t = list[i - 1];                     int j = i;                     while ((j > inc) && (list[j - inc - 1] > t))                     {                         list[j - 1] = list[j - inc - 1];                         j -= inc;                     }                     list[j - 1] = t;                 }             }         }         private static void Swap(ref int l, ref int r)         {             int s;             s = l;             l = r;             r = s;         }         public static void Sort(int[] list, int low, int high)         {             int pivot;             int l, r;             int mid;             if (high <= low)                 return;             else if (high == low + 1)             {                 if (list[low] > list[high])                     Swap(ref list[low], ref list[high]);                 return;             }             mid = (low + high) >> 1;             pivot = list[mid];             Swap(ref list[low], ref list[mid]);             l = low + 1;             r = high;             do             {                 while (l <= r && list[l] < pivot)                     l++;                 while (list[r] >= pivot)                     r--;                 if (l < r)                     Swap(ref list[l], ref list[r]);             } while (l < r);             list[low] = list[r];             list[r] = pivot;             if (low + 1 < r)                 Sort(list, low, r - 1);             if (r + 1 < high)                 Sort(list, r + 1, high);         }     }}

转载于:https://blog.51cto.com/14142860/2403144

你可能感兴趣的文章
《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <一>
查看>>
Spring声明式事务管理之二:核心接口API
查看>>
LNMP环境安装(二)
查看>>
MFC对话框编程-图片控件
查看>>
nodejs启动webserver服务
查看>>
小偷被抓叫嚣:我不偷警察没饭吃
查看>>
python初学—-实现excel里面读数据进行排序
查看>>
用户体验升级后 “谁行谁上”让百度Q4财报更有底气
查看>>
直播相关学习链接
查看>>
使用RPM包工具和源码包编译安装Linux应用程序
查看>>
VoIP——开启免费通话新时代的先锋
查看>>
Linux下rsync的用法
查看>>
apache虚拟主机、日志轮询、日志统计、去版本优化
查看>>
java代码实现开启openoffice服务和关闭sffice.exe进程
查看>>
docker镜像的使用方法
查看>>
提升HTTPS安全评级
查看>>
iOS开发过程中的心得
查看>>
QOS配置命令
查看>>
linux安装搭建media-wiki
查看>>
使用 MPI for Python 并行化遗传算法
查看>>