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

溫馨提示×

Java中快速排序的實現原理

小樊
83
2024-09-09 18:23:38
欄目: 編程語言

快速排序(Quick Sort)是一種高效的排序算法,其基本思想是通過選取一個基準元素,將數組分為兩部分,使得一部分的元素都小于基準元素,另一部分的元素都大于基準元素,然后對這兩部分遞歸地進行快速排序,最終得到有序數組。

快速排序的實現步驟如下:

  1. 選取基準元素:從數組中選取一個元素作為基準元素,通常選取第一個元素、最后一個元素或者隨機選取。

  2. 劃分:遍歷數組,將小于基準元素的值放在基準元素的左邊,大于基準元素的值放在基準元素的右邊。完成一次劃分后,基準元素會處于正確的位置。

  3. 遞歸排序子數組:對基準元素左邊和右邊的子數組分別進行遞歸排序,直到子數組的長度為1或0。

以下是Java中快速排序的實現代碼:

public class QuickSort {
    public static void main(String[] args) {
        int[] arr = {3, 8, 2, 5, 1, 4, 7, 6};
        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);
        }
    }

    private static int partition(int[] arr, int low, int high) {
        int pivot = arr[low];
        int i = low;
        int j = high;
        while (i < j) {
            while (i < j && arr[j] >= pivot) {
                j--;
            }
            if (i < j) {
                arr[i++] = arr[j];
            }
            while (i < j && arr[i] <= pivot) {
                i++;
            }
            if (i < j) {
                arr[j--] = arr[i];
            }
        }
        arr[i] = pivot;
        return i;
    }
}

在這個例子中,我們首先定義了一個quickSort方法,它接收一個整數數組、起始索引和結束索引作為參數。然后我們在partition方法中實現了劃分操作,該方法返回基準元素的正確位置。最后,我們在main方法中調用quickSort方法對數組進行排序,并打印排序后的結果。

0
松溪县| 双城市| 当阳市| 综艺| 龙岩市| 稷山县| 二连浩特市| 阿合奇县| 廉江市| 布拖县| 河南省| 浦东新区| 富蕴县| 紫阳县| 莒南县| 柏乡县| 东安县| 威宁| 神农架林区| 牡丹江市| 长葛市| 永川市| 嘉黎县| 水富县| 湖南省| 桓台县| 诸暨市| 股票| 和田县| 兴文县| 垦利县| 图们市| 沭阳县| 白城市| 平罗县| 新兴县| 长子县| 泌阳县| 祁连县| 东台市| 梓潼县|