排序算法4——快速排序
关于快速排序的说明,这儿不细说了,请参考维基百科解释:
http://zh.wikipedia.org/zh-cn/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F
下面是我用C#实现的,欢迎批评指教。
/// <summary>
/// 快速排序
/// </summary>
/// <param name="list"></param>
/// <param name="i">一般设为0</param>
/// <param name="j">list个数-1</param>
public void QuickSort(List<int> list, int i, int j)
{
if (i>=j)
return;
int ti=i,tj=j;
System.Random r = new Random();
int tmp = list[r.Next(i, j)];
while (true)
{
int sw;
while (list[j] > tmp&&j>ti)
{
j--;
}
while (list[i] < tmp & i < tj)
{
i++;
}
if (i >= j)
break;
sw = list[j];
list[j] = list[i];
list[i] = sw;
}
QuickSort(list, ti, i - 1);
QuickSort(list, j+ 1, tj);
}
浙公网安备 33010602011771号