<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    partition of quick sort

        int partition(vector<int>& nums, int i, int j) {
            int pivot = i++;
            while (true) {
                while (i <= j && nums[i] <= nums[pivot]) ++i; //a
                while (j >= i && nums[j] >= nums[pivot]) --j; //b
                if (i > j) {
                    break;
                }
                int t = nums[i]; nums[i++] = nums[j]; nums[j--] = t; //c
            }
            int t = nums[j]; nums[j] = nums[pivot]; nums[pivot] = t;
            return j;
        }
    上面這段代碼里,細節太多太多,居然搞了一晚上才搞出來,總的來說大方向上:
    1. 要確保最后能i > j才能終止(其實終止的時候,是一定滿足j + 1 == i的);
    2. 因為保留的是最左側的數為基準,排序目標是從左到右按照從小到大排,因此最后要把pivot和j交換;
    3. //a和//b里,其實只要有一個nums[i]/nums[j]和nums[pivot]的等于判斷就可以了,這里為了一致性,都保留了對等于的判斷;
    4. //c里增加了i和j各自挪一步的操作,因此如下寫法更好:
        int partition(vector<int>& nums, int i, int j) {
            int pivot = i++;
            while (true) {
                while (i <= j && nums[i] <= nums[pivot]) ++i;
                while (j >= i && nums[j] >= nums[pivot]) --j;
                if (i > j) {
                    break;
                }
                swap(nums[i++], nums[j--]);
            }
            swap(nums[pivot], nums[j]);
            return j;
        }

    posted on 2017-11-26 00:03 so true 閱讀(167) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 国产精品成人免费一区二区| 在线亚洲高清揄拍自拍一品区 | 国产成人无码精品久久久免费| 色视频在线观看免费| 一区在线免费观看| 亚洲精品无码永久在线观看 | 污视频在线观看免费| 国产精品酒店视频免费看| 免费av一区二区三区| 国内一级一级毛片a免费| 久久久久久国产a免费观看黄色大片| 免费国产精品视频| 特a级免费高清黄色片| 在线观看免费高清视频| 亚洲成av人在线视| 在线日本高清免费不卡| 亚洲综合无码AV一区二区| 亚洲AV无码国产剧情| 免费在线观看h片| 亚洲精品无码av中文字幕| 免费福利视频导航| 亚洲性无码一区二区三区| 三年片在线观看免费观看大全动漫| 免费国产人做人视频在线观看| 亚洲成a人片在线观看中文!!!| 亚洲一区二区三区在线观看蜜桃| 中文字幕无码免费久久9一区9 | 亚洲神级电影国语版| 国内精品免费视频精选在线观看| 亚洲高清无码在线观看| 亚洲国产精品成人午夜在线观看| 精品成在人线AV无码免费看 | 扒开双腿猛进入爽爽免费视频 | 99久久免费看国产精品| 亚洲乱码无码永久不卡在线| 色妞www精品视频免费看| 在线看片人成视频免费无遮挡| 亚洲午夜电影在线观看| 狼群影院在线观看免费观看直播| 久久夜色精品国产亚洲| 最新亚洲成av人免费看|