<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 閱讀(178) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 亚洲精品无码国产片| 亚洲熟女少妇一区二区| 亚洲mv国产精品mv日本mv| 无码精品人妻一区二区三区免费看| 久久影视国产亚洲| 中文字幕手机在线免费看电影| 四虎永久免费影院| 久久国产亚洲精品| 精品久久久久久久免费加勒比| 亚洲日本VA中文字幕久久道具| 国产精品冒白浆免费视频 | 99久久人妻精品免费一区| 婷婷精品国产亚洲AV麻豆不片 | 免费大黄网站在线观看| 一级做a爰全过程免费视频毛片| 亚洲精品无码激情AV| 在线看片免费人成视频久网下载| 国产亚洲综合久久系列| 免费看又黄又无码的网站| 亚洲人成影院在线高清| 国产又黄又爽又猛的免费视频播放 | 亚洲激情视频网站| 日韩欧美一区二区三区免费观看| 亚洲乱色伦图片区小说| 亚洲精品麻豆av| 无码免费一区二区三区免费播放| 亚洲一区二区三区在线| 免费看一级做a爰片久久| 两个人看的www高清免费观看| 久久丫精品国产亚洲av| 国产情侣激情在线视频免费看| 亚洲欧美乱色情图片| 亚洲中文字幕无码中文字在线| 最近免费中文字幕大全高清大全1| 亚洲色欲色欲www在线播放| 亚洲无线一二三四区手机| 99热这里只有精品6免费| 精品国产亚洲一区二区三区在线观看| 精品国产日韩亚洲一区| 91精品国产免费久久久久久青草| 在线视频亚洲一区|