Java快速排序演算法
阿新 • • 發佈:2019-01-24
基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。
package sort; import com.Quick; public class QuickSort { public static void sort(int[] arr,int low,int high){ int i = low; int h = high; //預設第一個為比較物件 int index = arr[low]; while(i<h){ //從後往前找比index更小的數 while(i<h&&arr[h]>=index) h--; if(i<h){ int temp = arr[h]; arr[h] = arr[i]; arr[i] = temp; i++; } //從前面開始找比index更大的數 while(i<h&& arr[i]<=index) i++; if(i<h){ int temp = arr[i]; arr[i] = arr[h]; arr[h] = temp; h--; } } if(i>low) sort(arr,low,i-1); if(h<high) sort(arr,i+1,high); } public static void main(String[] args) { int arr[] ={12,34,55,66,4,32,23,3}; Quick.sort(arr, 0, arr.length-1); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } }