C#快速排序
来源:互联网 发布:网络借钱最快的有哪些 编辑:程序博客网 时间:2024/06/06 00:17
//快速排序的具体过程如下:
//1:在待排序的n个记录中,任取一个作为基准,把数组分为两部分,第一组的排序码都小于或等于该排序码,第二组的排序码,都大于或等于该排序码,并把该基准放在两组中间。
2:采用同样的方法分别对左右两组进行排序,直到所有的记录都排到适当的位置。
///快速递归排序
private static void QuickSort(int[] R, int low, int high)
{
int pivotLoc = 0;
if (low < high)
{
pivotLoc = Partition(R, low, high);
QuickSort(R, low, pivotLoc - 1);
QuickSort(R, pivotLoc + 1, high);
}
}
private static int Partition(int[] R, int low, int high)
{
int temp = R[low];
while (low < high)
{
if (low < high && temp <= R[high])
{
high--;
}
R[low] = R[high];
if (low < high && R[low] <= temp)
{
low++;
}
R[high] = R[low];
}
R[low] = temp;
return low;
}
//快速非递归排序
public static void QuickSort(int [] R,int Low,int High,Stack<int> stack)
{
int low = Low;
int high = High;
int temp = R[low];
while (high > low)
{
while (low < high && temp <= R[high])
{
high--;
}
if (high > low)
{
R[low] = R[high];
R[high] = temp;
}
while (low < high && temp >= R[low])
{
low++;
}
if (high > low)
{
R[high] = R[low];
R[low] = temp;
}
if (Low < low - 1)
{
stack.Push(Low);
stack.Push(low-1);
}
if (High > low + 1)
{
stack.Push(low+1);
stack.Push(High);
}
}
}
- C#算法 快速排序
- C# 快速排序
- 快速排序算法c#
- 快速排序---c#实现
- 快速排序c#
- C#快速排序
- C#快速排序算法
- C#实现快速排序
- C#快速排序集合
- C#快速排序
- C#快速排序
- C# 实现快速排序
- C#快速排序算法
- C# 快速排序
- 【C#数据结构】快速排序
- 快速排序 c#实现
- C#之快速排序
- C#快速排序
- wireshark抓取本地程序之间的封包
- AjaxControlToolKit CascadingDropDown Method error 404 解决方法
- 修改fckeditor的文件上传功能
- nucleus实时操作系统MTK手机软件系统工程和配置简介
- C++ 文件类型分析
- C#快速排序
- 产品质量与有效监督
- C++ 文件类型分析
- C#委托方法匿名的四种写法
- 简单工厂模式(Simple Factory Pattern)
- FATAL: kernel too old
- 【连载】【STM32神舟III号实验例程】Nor Flash访问试验(实验十三)
- 如何做需求用例分析-实例
- C/C++判断文件/文件夹是否存在