小米平板 5 Pro 推送 MIUI 12.5.14 增強版:優化小米靈感觸控筆的連線性,修復網路環境不穩定時彈窗快閃的問題等
阿新 • • 發佈:2021-11-15
Java快速排序
記得快樂/** * 快速排序 * * @author yl */ public class QuickSort { public static void main(String[] args) { int[] array = {7, 6, 9, 3, 1, 5, 2, 4}; System.out.println(Arrays.toString(quickSort(array,0,array.length-1))); } /** * 快速排序演算法 * 參考:https://blog.csdn.net/morewindows/article/details/6684558、https://blog.csdn.net/shujuelin/article/details/82423852 * @param array * @param left * @param right * @return */ public static int[] quickSort(int[] array,int left,int right) { if (left>right){ return array; } // 將第一個數作為基準數 int baseNum = array[left]; // 左邊數的下標 int leftIndex=left; // 右邊數的下標 int rightIndex=right; while (leftIndex < rightIndex) { // 從右邊開始找第一個小於基準數的數的下標 while (leftIndex < rightIndex && array[rightIndex] >= baseNum) { rightIndex--; } // 從左邊開始找第一個大於基準數的數的下標 while (leftIndex < rightIndex && array[leftIndex] <= baseNum) { leftIndex++; } // 將找到的數左右互換 if (leftIndex<rightIndex){ int temp=array[leftIndex]; array[leftIndex]=array[rightIndex]; array[rightIndex]=temp; } } // 當左邊下標等於右邊下標時,將基準數和該下標對應數互換 array[left]=array[leftIndex]; array[leftIndex]=baseNum; // 遞迴呼叫 quickSort(array,left,rightIndex-1); quickSort(array,rightIndex+1,right); return array; } }