91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java排序如何實現快速排序

小樊
81
2024-11-16 05:35:27
欄目: 編程語言

快速排序是一種高效的排序算法,它的基本思想是通過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,然后分別對這兩部分記錄繼續進行排序,以達到整個序列有序的目的。

下面是一個簡單的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 i : arr) {
            System.out.print(i + " ");
        }
    }

    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];
        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方法,它接受一個整數數組、一個低索引和一個高索引作為參數。在quickSort方法中,我們首先檢查低索引是否小于高索引,如果是,則我們調用partition方法對數組進行分區,并返回樞軸元素的索引。然后,我們遞歸地對樞軸元素左側和右側的子數組進行排序。

partition方法接受一個整數數組、一個低索引和一個高索引作為參數。它首先將低索引處的元素作為樞軸,然后在高索引和低索引之間查找第一個小于樞軸的元素,并將其與樞軸交換。接下來,它在低索引和高索引之間查找第一個大于樞軸的元素,并將其與樞軸交換。這個過程會一直持續到高索引和低索引相遇。最后,將樞軸元素放在正確的位置,并返回其索引。

main方法中,我們創建了一個整數數組,并調用quickSort方法對其進行排序。然后,我們遍歷并打印排序后的數組。

0
大安市| 定兴县| 秀山| 林周县| 霍州市| 金湖县| 年辖:市辖区| 宜都市| 通辽市| 武山县| 平安县| 昌都县| 胶南市| 宁国市| 卓尼县| 紫阳县| 思茅市| 临安市| 佛山市| 石家庄市| 定日县| 陇川县| 西城区| 乌拉特前旗| 正宁县| 怀安县| 娱乐| 米林县| 宁夏| 江源县| 新郑市| 清水河县| 荃湾区| 郸城县| 绥中县| 宁都县| 穆棱市| 深水埗区| 潢川县| 大埔区| 禹城市|