<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 快速排序 Java 示例 > 原文: [https://howtodoinjava.com/algorithm/quicksort-java-example/](https://howtodoinjava.com/algorithm/quicksort-java-example/) **快速排序算法**是最常用的排序算法之一,尤其是對大型列表/數組進行排序。 快速排序是**分而治之算法**,這意味著將原始數組分為兩個數組,每個數組分別進行排序,然后將排序后的輸出合并以生成排序后的數組。 平均而言,**具有`O(n log n)`復雜度**,這使得快速排序適合于對大數據量進行排序。 用更標準的詞來說,快速排序算法通過與樞軸元素進行比較,將未排序的部分重復地分為低階子部分和高階子部分。 遞歸結束時,我們得到了排序數組。 請注意,可以將快速排序實現為“就地”排序。 這意味著排序在數組中進行,不需要創建其他數組。 ## 快速排序算法 快速排序算法的基本思想可以描述為以下步驟: 如果數組僅包含一個元素或零個元素,則對數組進行排序。 如果數組包含多個元素,則: 1. 通常從中間選擇一個元素作為樞軸元素,但這不是必需的。 2. 數據元素分為兩部分:一個元素的順序比樞軸元素低,一個元素的順序比樞軸元素高。 3. 重復步驟 1 和 2,分別對這兩部分進行排序。 ## 快速排序 Java 示例 以下是示例**快速排序 Java 實現**。 ```java public class QuickSortExample { public static void main(String[] args) { // This is unsorted array Integer[] array = new Integer[] { 12, 13, 24, 10, 3, 6, 90, 70 }; // Let's sort using quick sort quickSort( array, 0, array.length - 1 ); // Verify sorted array System.out.println(Arrays.toString(array)); } public static void quickSort(Integer[] arr, int low, int high) { //check for empty or null array if (arr == null || arr.length == 0){ return; } if (low >= high){ return; } //Get the pivot element from the middle of the list int middle = low + (high - low) / 2; int pivot = arr[middle]; // make left < pivot and right > pivot int i = low, j = high; while (i <= j) { //Check until all values on left side array are lower than pivot while (arr[i] < pivot) { i++; } //Check until all values on left side array are greater than pivot while (arr[j] > pivot) { j--; } //Now compare values from both side of lists to see if they need swapping //After swapping move the iterator on both lists if (i <= j) { swap (arr, i, j); i++; j--; } } //Do same operation as above recursively to sort two sub arrays if (low < j){ quickSort(arr, low, j); } if (high > i){ quickSort(arr, i, high); } } public static void swap (Integer array[], int x, int y) { int temp = array[x]; array[x] = array[y]; array[y] = temp; } } Output: [3, 6, 10, 12, 13, 24, 70, 90] ``` 在 Java 中, [**`Arrays.sort()`**](http://developer.classpath.org/doc/java/util/Arrays-source.html)方法使用快速排序算法使用雙樞軸元素對原始類型數組進行排序。 雙樞軸使該算法更快。 檢查出。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看