快速排序-左右指針法-java

左右指針法容易出現(xiàn)問題的地方是一趟快速排序相遇時(shí)的處理方式
如果參考在末尾,要先從左走
如果參考在數(shù)組頭部,要先從右走

參考在數(shù)組頭部,要先從右走

    private static int partition(int[] array, int left, int right) {
        int key = array[left];
        int index = left;
        while (left < right) {

            while (left < right && array[right] <= key) {
                --right;
            }

            while (left < right && array[left] >= key) {
                ++left;
            }

            swap(array, left, right);
        }
        swap(array, right, index);
        return right;
    }

    private static void swap(int[] cost, int i, int j) {
        int temp = cost[i];
        cost[i] = cost[j];
        cost[j] = temp;
    }

參考在末尾,要先從左走

    private static int partition2(int[] array, int left, int right) {
        int key = array[right];
        int index = right;
        while (left < right) {

            while (left < right && array[left] <= key) {
                ++left;
            }

            while (left < right && array[right] >= key) {
                --right;
            }

            swap(array, left, right);
        }
        swap(array, left, index);
        return left;
    }

參考:
http://www.itdecent.cn/p/bb41e3be09ba

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • 1. 找出數(shù)組中重復(fù)的數(shù)字 題目:在一個(gè)長(zhǎng)度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,...
    BookThief閱讀 2,016評(píng)論 0 2
  • 這是達(dá)里奧提出的實(shí)現(xiàn)目標(biāo)的五個(gè)步驟,在這里繼續(xù)上一次的回顧 “Identifying and Not Tolera...
    七年的旅行閱讀 272評(píng)論 1 0
  • 揮揮手 顫顫巍巍的靈魂哽咽 車聲急鳴 故鄉(xiāng)的背影漸遠(yuǎn) 兒時(shí)爬過的脊背 漸漸佝僂 兜里塞滿驚喜的糖果回憶 滲出迷人的...
    抱一閱讀 734評(píng)論 0 0
  • 同上2016年應(yīng)該有個(gè)嶄新的面貌,嶄新的視野。 開了幾個(gè)寫文章的地方,但都沒有堅(jiān)持下來,書買了一大推,看完的就一兩...
    一晃一晃閱讀 208評(píng)論 0 1

友情鏈接更多精彩內(nèi)容