WEB开发网
开发学院软件开发C语言 你知道C# 各种排序的编写及性能吗? 阅读

你知道C# 各种排序的编写及性能吗?

 2009-06-08 08:32:18 来源:WEB开发网   
核心提示: 代码如下: /// <summary> /// 快速排序算法 /// </summary> public class QuickSort : IAction { #region IAction 成员 public void Action() { int[] arra

代码如下:

    /// <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# 各种排序的编写及性能吗?

图片看不清楚?请点击这里查看原图(大图)。

你知道C# 各种排序的编写及性能吗?

图片看不清楚?请点击这里查看原图(大图)。

总结:从C#几个常用的排序算法中,我们常用的冒泡法消耗的系统时间是最多了,相比之下快速排序所用的时间倒是很快速。

希望能和大家一起探讨.NET中的神奇,享受编程给我们带来的乐趣~

上一页  1 2 3 4 

Tags:知道 各种 排序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接