第一篇 博客 记录一个自己写的性能超级差的方法 以后想办法找出原因

        public static void QuickSort<T>(int sta, int end, List<T> rows, Func<List<T>,int ,int, bool> comp)
        {
            if (sta > end)
            { return; }
            int temp;

            //第一次交换
            int temp3 = new Random().Next(sta, end);
            T x0;
            x0 = rows[sta];
            rows[sta] = rows[temp3];
            rows[temp3] = x0;
            temp = sta;

            for (int i = sta + 1; i <= end; i++)
            {
                if (comp(rows,i,sta))
                {
                    //第二次交换
                    int temp2 = ++temp;
                    T x;
                    x = rows[temp2];
                    rows[temp2] = rows[i];
                    rows[i] = x;
                }
            }
            //第三次交换
            T x2;
            x2 = rows[sta];
            rows[sta] = rows[temp];
            rows[temp] = x2;

            QuickSort(sta, temp - 1, rows, comp);
            QuickSort(temp + 1, end, rows, comp);
        }
posted on 2011-06-13 18:21  人在做,人在看  阅读(261)  评论(0编辑  收藏  举报