中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java實現快速排序算法

發布時間:2020-06-11 11:12:30 來源:億速云 閱讀:156 作者:Leah 欄目:編程語言

這篇文章給大家分享的是java實現快速排序算法,相信大部分人都還沒學會這個技能,為了讓大家學會,給大家總結了以下內容,話不多說,一起往下看吧。

1、什么是快速排序算法

實際上快速排序(Quicksort)就是對冒泡排序的一種改進。

2、快速排序算法的思想

通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

(視頻教程推薦:java視頻教程)

3、實現思路

(1)以第一個關鍵字 K 1 為控制字,將 [K 1 ,K 2 ,…,K n ] 分成兩個子區,使左區所有關鍵字小于等于 K 1 ,右區所有關鍵字大于等于 K 1 ,最后控制字居兩個子區中間的適當位置。在子區內數據尚處于無序狀態。;

(2)把左區作為一個整體,用(1)的步驟進行處理,右區進行相同的處理。(即遞歸)

(3)重復第(1)、(2)步步驟,直到左區處理完畢。

4、實現代碼

static void quicksort(int n[], int left, int right) {
        int dp;
        if (left < right) {
            dp = partition(n, left, right);
            quicksort(n, left, dp - 1);
            quicksort(n, dp + 1, right);
        }
    }
 
    static int partition(int n[], int left, int right) {
        int pivot = n[left];
        while (left < right) {
            while (left < right && n[right] >= pivot)
                right--;
            if (left < right)
                n[left++] = n[right];
            while (left < right && n[left] <= pivot)
                left++;
            if (left < right)
                n[right--] = n[left];
        }
        n[left] = pivot;
        return left;
    }

關于java實現快速排序算法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特后旗| 南京市| 盐边县| 霍林郭勒市| 通江县| 柏乡县| 襄垣县| 南皮县| 连云港市| 彭泽县| 新野县| 招远市| 南宫市| 察雅县| 南通市| 尼勒克县| 平度市| 建宁县| 绵阳市| 大渡口区| 德化县| 仁化县| 务川| 兴城市| 福鼎市| 鹤岗市| 海安县| 油尖旺区| 深泽县| 武胜县| 上林县| 安化县| 大悟县| 无锡市| 剑川县| 阳朔县| 金山区| 岳阳市| 河曲县| 广水市| 平谷区|