快速排序實現

2021-06-09 19:50:57 字數 909 閱讀 2146

1.結束條件: low = high

2.快速排序要分而治之。故需要分的位置,位置便是當前元素經過排列後應該所在的位置。

3.對於單次的排列,都使得乙個元素排在了正確的位置,她的左面比她小,右側比她大。

package com.jue.quicksort;

public class quicksort ;

logs("old : ", data);

quicksort(data, 0, data.length - 1);

logs("new : ", data);

} static void logs(string str, int data)

system.out.println(sb);

} public static void quicksort(int data, int low, int high)

int index = getsortedindex(data, low, high);

quicksort(data, low, index - 1);

quicksort(data, index + 1, high);

} private static int getsortedindex(int data, int low, int high) else if (currentdata <= data[high])

} else if (currentdataindex == high) else if (currentdata >= data[low])

}} return currentdataindex;

}}

輸出的結果

實現 快速排序

快速排序的基本思想 1 先從數列中選擇乙個數作為基準數 一般會把陣列中最左邊的數當做基準數 2 然後從數列兩邊進行檢索 先從右邊檢索比基準數小的,再從左邊檢索比基準數大的 如果檢索到了,就停下,然後交換這兩個元素。然後再繼續檢索。3 直到左檢索和右檢索相遇,把基準數和相遇位置的數交換。4 第一輪檢索...

快速排序實現

快速排序的 快 是因為使用了 分治法 使其時間複雜度降低到了 nlogn author qucg version 2019 5 19 description 快速排序,快速排序的 快 是因為使用了 分治法 public class quicksort 得到基準元素位置 int pivotindex ...

快速排序實現

快速排序的基本思想是 通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,從而使全部的資料有序。快排的平均時間複雜度是o nlogn 最壞是o n 2 1 public class ...