C#排序算法之快速排序解析

作者:mlovelcottage 时间:2023-03-21 00:39:28 

本文实例为大家分享了C#实现快速排序的具体代码,供大家参考,具体内容如下

代码:


/// <summary>
/// 排序
/// </summary>
/// <param name="array">要排序的数组</param>
/// <param name="low">下标开始位置,向右查找</param>
/// <param name="high">下标开始位置,向左查找</param>
public static void Sort(int[] array, int low, int high)
{
 if (low >= high)
 return;
 //完成一次单元排序
 int index = SortUnit(array, low, high);
 //递归调用,对左边部分的数组进行单元排序
 Sort(array, low, index - 1);
 //递归调用,对右边部分的数组进行单元排序
 Sort(array, index + 1, high);
}

/// <summary>
/// 单元排序
/// </summary>
/// <param name="array">要排序的数组</param>
/// <param name="low">下标开始位置,向右查找</param>
/// <param name="high">下标开始位置,向右查找</param>
/// <returns>每次单元排序的停止下标</returns>
public static int SortUnit(int[] array, int low, int high)
{
 int key = array[low];//基准数
 while (low < high)
 {
 //从high往前找小于或等于key的值
 while (low < high && array[high] > key)
  high--;
 //比key小开等的放左边
 array[low] = array[high];
 //从low往后找大于key的值
 while (low < high && array[low] <= key)
  low++;
 //比key大的放右边
 array[high] = array[low];
 }
 //结束循环时,此时low等于high,左边都小于或等于key,右边都大于key。将key放在游标当前位置。
 array[low] = key;
 return high;
}

来源:https://blog.csdn.net/miluli1/article/details/85990704

标签:C#,快速排序
0
投稿

猜你喜欢

  • IDEA JavaWeb项目启动运行后出现404错误的解决方法

    2022-05-19 01:22:11
  • 详解android系统的定制

    2022-03-14 11:20:19
  • Android实现webview实例代码

    2022-05-28 13:32:32
  • Springboot - Fat Jar示例详解

    2023-11-19 21:28:35
  • Java实战之实现在线小说阅读系统

    2022-10-09 18:15:09
  • 通过IDEA快速定位和排除依赖冲突问题

    2021-06-07 02:01:16
  • WheelPicker自定义时间选择器控件

    2023-05-16 18:30:05
  • Commons beanutils组件简介

    2023-11-28 07:13:27
  • 详解SpringBoot通用配置文件(不定时更新)

    2022-12-01 09:07:04
  • Java线程池 ThreadPoolExecutor 详解

    2021-05-24 10:35:42
  • C# List集合中获取重复值及集合运算详解

    2022-06-13 17:15:45
  • Android仿IOS上拉下拉弹性效果的实例代码

    2023-08-26 06:49:18
  • Android实现图片的高斯模糊(两种方式)

    2023-01-24 05:42:48
  • Springboot中登录后关于cookie和session拦截问题的案例分析

    2022-09-25 19:26:44
  • C#中out保留字用法实例分析

    2021-07-28 18:44:54
  • C# 网络编程之UDP

    2021-10-02 16:06:40
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

    2023-06-16 07:54:29
  • Spring boot的上传图片功能实例详解

    2022-10-09 09:52:00
  • 23种设计模式(14)java迭代器模式

    2021-12-12 15:28:49
  • 四步轻松搞定java web每天定时执行任务

    2022-03-31 20:57:08
  • asp之家 软件编程 m.aspxhome.com