亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
临桂县| 梁山县| 清远市| 宁安市| 页游| 赞皇县| 宽甸| 阳山县| 北京市| 安阳市| 伽师县| 义乌市| 临桂县| 铜川市| 收藏| 容城县| 江山市| 贵溪市| 开江县| 绥江县| 湟中县| 富民县| 华坪县| 石门县| 浙江省| 康平县| 特克斯县| 昌都县| 从化市| 青冈县| 绥棱县| 科技| 垫江县| 平江县| 邯郸市| 增城市| 闸北区| 合山市| 双江| 康平县| 鄢陵县|