标签:
1.先从数列中取出一个数作为基准数
2.分区过程:将比基准数大的放在其右边,小的放在其左边
3.再对左右区间重复分区操作,直到各区间只有一个数
package quicksorttest; import java.util.Scanner; public class QuicksortTest { static int[] array = new int[10]; public static void main(String[] args) { System.out.println("Please enter the array[10] : "); Scanner ascanner = new Scanner(System.in); for (int i = 0; i < array.length; i++) { array[i] = ascanner.nextInt(); } quickSort(0, array.length - 1); System.out.println(array.toString()); } /** * 快速排序 * * @param left * 分段数组左侧index * @param right * 分段数组右侧index */ static void quickSort(int left, int right) { if (left < right) { int i = left, j = right, key = array[left]; while (i < j) { while (i < j && array[j] >= key) { j--; } if (i < j) { // i++,先使用i,后++ array[i++] = array[j]; } while (i < j && array[i] <= key) { i++; } if (i < j) { array[j--] = array[i]; } } array[i] = key; // 递归调用 quickSort(left, i - 1); quickSort(i + 1, right); } } }
标签:
原文地址:http://www.cnblogs.com/freedom-wangyb/p/4389478.html