亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#快速排序

2023-05-16 12:36:08
字體:
來源:轉載
供稿:網友

快速排序思想:

基于分治策略,對冒泡排序的一種改進。對于要排序的一個序列,從中選一值進行排序,將其放入到正確的位置position。然后以position為界,對左右兩部分再做排序。直到劃分的長度為1。

步驟:設有一待排序的序列

1、分別設置low、high指向序列的最左端、最右端;從序列中選一個進行排序(通常選最左端的值low指向的值),存入到tmp;
2、從high端開始,查找比tmp小的,找到后將該值放入到low指向的存儲位中;苯玥igh指向當前查到的值所在的位;
3、從low端開始,查找比tmp大的,找到后將該值放入到high指向的存儲為中,同時low指向當前查到的值所在位;
4、若low位小于high位,返回步驟2;否則,將tmp值存入到空出來的low+1指向的位置,退出,返回low所在的位置position;
5、以position為界,將序列分成兩部分,分別對兩部分進行排序。

c#實現如下:

         //快速排序
        public static void QuickSort(int[] items)
        {
            RecQuickSort(items, 0, items.Length - 1);
        }

        private static void RecQuickSort(int[] items, int low, int high)
        {
            if (low < high)
            {
                int i = Partition(items, low, high);
                RecQuickSort(items, low, i - 1);
                RecQuickSort(items, i + 1, high);
            }
        }

        private static int Partition(int[] items, int low, int high)
        {
            int tmp = items[low];
            while (low < high)
            {
                while (low < high && items[high] >= tmp)
                    high--;

                // 換位后不能將low加1,防止跳位  
                if (low < high)
                    items[low] = items[high];

                while (low < high && items[low] <= tmp)
                    low++;

                if (low < high)
                {
                    items[high] = items[low];
                    // 有low < high,可將high向前推一位  
                    high--;
                }
            }
            items[low] = tmp;

            return low;
        }

最關鍵的是Partition,做一次排序的劃分,將其放入到正確的位置。


.NET中的Array.Sort()方法內部使用的就是快速排序算法,看看Array.Sort()方法的實現:
   
    [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
    public static void Sort(Array array)
    {
        if (array == null)
        {
            throw new ArgumentNullException("array");
        }
        Sort(array, null, array.GetLowerBound(0), array.Length, null);
    }   

    [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
    public static void Sort(Array keys, Array items, int index, int length, IComparer comparer)
    {
        if (keys == null)
        {
            throw new ArgumentNullException("keys");
        }
        if ((keys.Rank != 1) || ((items != null) && (items.Rank != 1)))
        {
            throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
        }
        if ((items != null) && (keys.GetLowerBound(0) != items.GetLowerBound(0)))
        {
            throw new ArgumentException(Environment.GetResourceString("Arg_LowerBoundsMustMatch"));
        }
        if ((index < keys.GetLowerBound(0)) || (length < 0))
        {
            throw new ArgumentOutOfRangeException((length < 0) ? "length" : "index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
        }
        if (((keys.Length - (index - keys.GetLowerBound(0))) < length) || ((items != null) && ((index - items.GetLowerBound(0)) > (items.Length - length))))
        {
            throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
        }
        if ((length > 1) && (((comparer != Comparer.Default) && (comparer != null)) || !TrySZSort(keys, items, index, (index + length) - 1)))
        {
            object[] objArray = keys as object[];
            object[] objArray2 = null;
            if (objArray != null)
            {
                objArray2 = items as object[];
            }
            if ((objArray != null) && ((items == null) || (objArray2 != null)))
            {
                new SorterObjectArray(objArray, objArray2, comparer).QuickSort(index, (index + length) - 1);
            }
            else
            {
                new SorterGenericArray(keys, items, comparer).QuickSort(index, (index + length) - 1);
            }
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产69精品99久久久久久宅男| 国产ts人妖一区二区三区| 亚洲视频免费一区| 一区二区亚洲精品国产| 69av视频在线播放| 国产精品偷伦免费视频观看的| 日韩av免费看| 亚洲精品一区中文字幕乱码| 亚洲精品欧美日韩| 1769国产精品| 国产日韩欧美夫妻视频在线观看| 最新的欧美黄色| 久久久亚洲国产天美传媒修理工| 亚洲japanese制服美女| 久操成人在线视频| 91免费看视频.| 亚洲免费中文字幕| 日本精品va在线观看| 亚洲美女喷白浆| 国产精品美女免费| 中文亚洲视频在线| 亚洲精品日韩在线| 亚洲free性xxxx护士白浆| 欧美在线观看一区二区三区| 亚州成人av在线| 欧美久久精品午夜青青大伊人| 这里只有精品视频在线| 精品一区二区三区电影| 北条麻妃99精品青青久久| 日本欧美国产在线| 欧美一区二区三区艳史| 久久夜色精品亚洲噜噜国产mv| 国产成人黄色av| 欧美国产视频日韩| 国产视频精品在线| 欧美综合第一页| 欧美日韩另类在线| 91日本视频在线| 国产精品久久久久久久久久久新郎| 亚洲欧美一区二区激情| 高清视频欧美一级| 亚洲天堂一区二区三区| 欧美性猛交99久久久久99按摩| 日韩在线视频一区| 国产精品久久久久久久久久久不卡| 日韩中文字幕在线免费观看| 精品一区二区亚洲| 国产综合久久久久久| 国产精品福利在线观看| 日韩欧美在线视频观看| 亚洲精品成人网| 亚洲欧美日韩成人| 成人激情视频在线播放| 欧美精品性视频| 成人444kkkk在线观看| 日韩av免费网站| 亚洲人成77777在线观看网| 中文字幕欧美国内| 国产精品一区二区久久精品| 欧美精品电影免费在线观看| 色青青草原桃花久久综合| 精品国产老师黑色丝袜高跟鞋| 亚洲欧美一区二区三区情侣bbw| 亚洲精品国精品久久99热一| 91国语精品自产拍在线观看性色| 国产va免费精品高清在线| 日本免费在线精品| 国自产精品手机在线观看视频| 欧美影院成年免费版| 亚洲999一在线观看www| 在线日韩欧美视频| 国模精品视频一区二区| 精品国产乱码久久久久久婷婷| 国产成人精品国内自产拍免费看| 日韩精品高清视频| 欧美日韩亚洲系列| 日韩av电影国产| 久久亚洲综合国产精品99麻豆精品福利| 久久午夜a级毛片| 日本免费一区二区三区视频观看| 国产精品对白刺激| 成人xvideos免费视频| 日韩欧美中文免费| 136fldh精品导航福利| 亚洲精品国产美女| 精品欧美一区二区三区| 欧美日韩一区二区免费视频| 成人午夜在线影院| 午夜精品久久久久久久99热浪潮| 成人在线精品视频| 色综合色综合久久综合频道88| 97香蕉久久夜色精品国产| 亚洲一区二区中文字幕| 国产精品久久久精品| 日韩av影院在线观看| 26uuu日韩精品一区二区| 国产精品久久久久久av福利| 久久99视频免费| 国产精品白嫩初高中害羞小美女| 日韩一级裸体免费视频| 精品日韩中文字幕| 欧美一级在线播放| 九九九热精品免费视频观看网站| 欧美专区第一页| 97国产真实伦对白精彩视频8| 久久亚洲综合国产精品99麻豆精品福利| 亚洲社区在线观看| 色综合色综合久久综合频道88| 欧美精品videosex性欧美| 亚洲第一国产精品| 国产精品第三页| 久久久国产精品亚洲一区| 欧美在线视频在线播放完整版免费观看| 一区二区三区动漫| 久久精品国产久精国产一老狼| 91性高湖久久久久久久久_久久99| 国内揄拍国内精品| 欧美大片欧美激情性色a∨久久| 日韩av日韩在线观看| 亚洲精品国产拍免费91在线| 亚洲a在线播放| 日韩在线视频国产| 91视频8mav| 日本国产精品视频| 国产欧美日韩亚洲精品| 91人人爽人人爽人人精88v| 精品国产老师黑色丝袜高跟鞋| 日韩精品免费看| 欧洲永久精品大片ww免费漫画| 日本欧美黄网站| 成人黄色片网站| 国产欧美一区二区三区视频| 精品亚洲va在线va天堂资源站| 国产精品福利在线观看| 97超碰蝌蚪网人人做人人爽| 精品国模在线视频| 欧美日韩一区免费| 国产日韩av在线播放| 欧洲美女7788成人免费视频| 精品视频久久久久久久| 亚洲国产精品久久精品怡红院| 久热精品视频在线观看| 亚洲人在线视频| 亚洲欧美日韩区| 亚洲成人精品视频| 久久精品久久久久| 国产精品专区一| 久久久久久一区二区三区| 一区二区三区国产视频| 亚洲福利在线观看| 久久人人爽人人爽人人片av高清| 九九久久久久99精品| 日日摸夜夜添一区| 亚洲欧洲一区二区三区在线观看| 91精品久久久久久久久青青| 日韩性xxxx爱| 98午夜经典影视| 97精品在线观看| 国产成人精品一区二区在线| 久久乐国产精品| 一区二区三区美女xx视频| 欧美一区二区.| 在线观看成人黄色| 91精品一区二区|