-
快速排序(QuickSort)用C# 实现的小例子
class QuickSort
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
public void Sort(int[] data, int start, int end)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (start >= end) return;
if (start + 1 == end)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (data[start] > data[end])
Swap(data, start, end);
![](/Images/OutliningIndicators/InBlock.gif)
return;
}
![](/Images/OutliningIndicators/InBlock.gif)
int indexL = start + 1, indexR = end;
while (indexL < indexR)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// Get from left
while (indexL <= end && data[start] >= data[indexL])
indexL++;
![](/Images/OutliningIndicators/InBlock.gif)
// Get from right
while (indexR > start && data[start] < data[indexR])
indexR--;
![](/Images/OutliningIndicators/InBlock.gif)
if (indexL < indexR)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Swap(data, indexR, indexL);
}
}
![](/Images/OutliningIndicators/InBlock.gif)
if(indexL-1 !=start)
Swap(data, start, indexL - 1);
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
Sort(data, start, indexL - 2);
Sort(data, indexL, end);
}
![](/Images/OutliningIndicators/InBlock.gif)
private void Swap(int[] data, int x, int y)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
data[x] = data[x] + data[y];
data[y] = data[x] - data[y];
data[x] = data[x] - data[y];
}
}
![](/Images/OutliningIndicators/None.gif)
-
相关阅读:
ASP.NET中级学习3
C#面向对象学习笔记
Javascript学习笔记
FormView控件使用
ASP.NET初级学习
ListView控件是使用
Java NIO 学习笔记一
堆栈和托管堆 c#
安装php7.2并且整合nginx且分开部署
Python 安装requests和MySQLdb
-
原文地址:https://www.cnblogs.com/skywind/p/1131612.html
Copyright © 2020-2023
润新知