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

溫馨提示×

java快速排序算法怎么實現

小億
85
2024-01-18 19:34:38
欄目: 編程語言

快速排序(Quick Sort)是一種常用的排序算法,它的基本思想是通過一趟排序將待排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另一部分的所有數據小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列的目的。

以下是Java實現快速排序算法的示例代碼:

public class QuickSort {
    public static void main(String[] args) {
        int[] arr = {9, 2, 5, 7, 1, 8, 6, 3, 4};
        quickSort(arr, 0, arr.length - 1);
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }

    public static void quickSort(int[] arr, int low, int high) {
        if (low < high) {
            // 將數組分區,并獲取分區點的索引
            int pivotIndex = partition(arr, low, high);
            // 對左側子數組進行快速排序
            quickSort(arr, low, pivotIndex - 1);
            // 對右側子數組進行快速排序
            quickSort(arr, pivotIndex + 1, high);
        }
    }

    public static int partition(int[] arr, int low, int high) {
        // 將第一個元素作為分區點
        int pivot = arr[low];
        while (low < high) {
            // 從右往左找到第一個小于分區點的元素
            while (low < high && arr[high] >= pivot) {
                high--;
            }
            // 將該元素放到左側
            arr[low] = arr[high];
            // 從左往右找到第一個大于分區點的元素
            while (low < high && arr[low] <= pivot) {
                low++;
            }
            // 將該元素放到右側
            arr[high] = arr[low];
        }
        // 將分區點放到正確的位置上
        arr[low] = pivot;
        // 返回分區點的索引
        return low;
    }
}

上述代碼中,quickSort方法實現了快速排序算法的遞歸調用,partition方法用于將數組分區,并返回分區點的索引。在每一次遞歸調用中,選擇一個分區點將數組分成兩個子數組,然后對兩個子數組分別進行快速排序。最后,將分區點放到正確的位置上,完成一趟排序。通過遞歸調用快速排序算法,最終可以將整個數組排序。

0
朝阳县| 琼结县| 温泉县| 汝阳县| 探索| 鹿邑县| 铜山县| 手游| 思南县| 嫩江县| 德钦县| 牡丹江市| 沐川县| 滦南县| 池州市| 栾川县| 吉首市| 马关县| 纳雍县| 曲松县| 成都市| 壤塘县| 渑池县| 泗洪县| 营口市| 同心县| 江川县| 郯城县| 大厂| 普定县| 黑河市| 沙雅县| 湘乡市| 乌拉特后旗| 炉霍县| 临邑县| 富平县| 逊克县| 钦州市| 察哈| 农安县|