package com.test.sort; public class TestQuickSort { public static void swap(int a, int b) { int temp = a; a = b; b = temp; } public static int partition(int[] array, int lo, int hi) { int mid = lo + (hi - lo) / 2; if (array[mid] > array[hi]) swap(array[mid], array[hi]); if (array[lo] > array[mid]) swap(array[lo], array[hi]); if (array[lo] > array[hi]) swap(array[lo], array[hi]); int key = array[lo]; while (lo < hi) { while (lo < hi && array[hi] >= key) { hi--; } array[lo] = array[hi]; while (lo < hi && array[lo] <= key) { lo++; } array[hi] = array[lo]; } array[lo] = key; return lo; } public static void sort(int[] array, int lo, int hi) { if (lo > hi) return ; int index = partition(array, lo, hi); sort(array, lo, index - 1); sort(array, index + 1, hi); } public static void printArray(int[] array) { System.out.print("{"); for (int i = 0; i < array.length; i ++) { System.out.print(array[i]); if (i != array.length - 1) { System.out.print(","); } } System.out.print("}"); } public static void main(String[] args) { int[] array = {3, 2, 1, 5, 1}; sort(array, 0 , array.length - 1); printArray(array); } }
java排序之快速排序(三数取中)
猜你喜欢
转载自blog.csdn.net/qq_34561892/article/details/81813746
今日推荐
周排行