【ALGO】快速排序演算法複習
阿新 • • 發佈:2021-02-14
技術標籤:架構
1 迴圈不變數
import java.lang.reflect.Array; public class quickSort { private static final int[] array = new int[]{9,-8,7,6,500,1,2,3,4}; public static void quickSort(int[] array, int begin, int end){ if(begin >= end){ return; } int partition = partition(array, begin, end); quickSort(array, begin, partition - 1); quickSort(array, partition + 1, end); } private static int partition(int[] array, int begin, int end) { int head = begin; int nextIndex = begin; while(nextIndex++ < end){ if(array[nextIndex] < array[head]){ swap(array, nextIndex, head); head++; } } return head; } public static void main(String[] args) { quickSort(array, 0, 8); for (int i : array) { System.out.println(i); } } private static void swap(int[] array, int head, int tail) { int temp = array[head]; array[head] = array[tail]; array[tail] = temp; } }
2 總結
1 每次parititon劃分
2 遞迴迭代