你知道C# 各种排序的编写及性能吗?
2009-06-08 08:32:18 来源:WEB开发网代码如下:
/// <summary>
/// 快速排序算法
/// </summary>
public class QuickSort : IAction
{
#region IAction 成员
public void Action()
{
int[] array = Program.RandomArray();
QuickSortArray(array, 0, array.Length - 1);
}
private void QuickSortArray(int[] arr, int low, int high)
{
int i = low;
int j = high;
int tmp = arr[low];
while (low < high)
{
while ((low < high) && arr[high] >= tmp)
{
--high;
}
arr[low] = arr[high];
while ((low < high) && arr[low] <= tmp)
{
++low;
}
arr[high] = arr[low];
--high;
}
arr[low] = tmp;
if (i < low - 1)
{
QuickSortArray(arr, i, low - 1);
}
if (j > low + 1)
{
QuickSortArray(arr, low + 1, j);
}
}
#endregion
}
通过上面的描述,我们对C#几个主要的排序算法了解清楚了 接下来开始解析它们其中的奥妙吧。其实在此之前 我一直都喜欢使用冒泡来排序,不过通过CodeTimer测试了下 结果如下:
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
总结:从C#几个常用的排序算法中,我们常用的冒泡法消耗的系统时间是最多了,相比之下快速排序所用的时间倒是很快速。
希望能和大家一起探讨.NET中的神奇,享受编程给我们带来的乐趣~
更多精彩
赞助商链接