本文共 953 字,大约阅读时间需要 3 分钟。
package com.arithmetic.quicksort; /** * 快速排序的排序效率在同为O(N*logN)的几种排序方法中效率较高, * 该方法的基本思想是: * 1.先从数列中取出一个数作为基准数。 * 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 * 3.再对左右区间重复第二步,直到各区间只有一个数。 */ public class QuickSort { public void quickSort(String[] array, int left, int right) { String middle, tempData; int i=0,j=0; do { i=left; j=right; middle = array[(i+j)/2]; while (array[i].compareTo(middle) < 0 && i < right) { i++; } while (array[j].compareTo(middle) > 0 && j > left) { j--; } if (i<=j) { tempData = array[i]; array[i] = array[j]; array[j] = tempData; i++; j--; } } while(i<=j); if (i < right) { quickSort(array, i, right); } if (j > left) { quickSort(array, left, j); } } /** * @param args */ public static void main(String[] args) { String[] strArray = new String[]{"2","4","1","5","8","7","3","0"}; QuickSort quickSort = new QuickSort(); quickSort.quickSort(strArray, 0, strArray.length - 1); for (String str : strArray) { System.out.println(str); } } }转载地址:http://fwmti.baihongyu.com/