public class QuickSort { public static int partition(int[] data, int low, int high) { int key = data[low]; while (low < high) { while (data[high] >= key && low < high) { high--; } data[low] = data[high]; while (data[low] <= key && low < high) { low++; } data[high] = data[low]; } data[high] = key; return high; } public static int[] sort(int[] data, int low, int high) { if(low>=high){ return data; } int mid = partition(data, low, high); sort(data, low, mid - 1); sort(data, mid + 1, high); return data; } public static void main(String[] args) { int[] data = {8, 7, 7, 9, 2, 5, 1, 4, 3}; int[] res = sort(data, 0, data.length-1); for (int i : res) { System.out.println(i); } } }
【算法题】快速排序--递归
最新推荐文章于 2023-07-12 11:44:22 发布