分组后的数组:4,5,14,23,52,11,
分组后的数组:4,5,11,23,52,14,
分组后的数组:4,5,11,14,52,23,
分组后的数组:4,5,11,14,23,52,
排序后的数组:4,5,11,14,23,52,
package datastructure; public class QuickSort { public QuickSort() { } public static void quickSort(int[] datas, int low, int high) { if (low < high) { int p = partition(datas, low, high); quickSort(datas, low, p - 1); quickSort(datas, p + 1, high); } } public static int partition(int[] datas, int low, int high) { int index = low - 1; int last = datas[high]; for (int j = low; j < high; j++) { if (datas[j] < last) { index++; if (j != index) { int tmp = datas[j]; datas[j] = datas[index]; datas[index] = tmp; } } } index++; if (index != high) { int tmp = datas[high]; datas[high] = datas[index]; datas[index] = tmp; } System.out.print("分组后的数组:"); for(int i=0;i<datas.length;i++){ System.out.print(datas[i]+","); } System.out.println(); return index; } public static void main(String[] args) { int[] datas = { 11, 4, 14, 23, 52, 5 }; QuickSort.quickSort(datas, 0, datas.length - 1); System.out.print("排序后的数组:"); for(int i=0;i<datas.length;i++){ System.out.print(datas[i]+","); } } }
if (j != index)
if (index != high)
这两个判断我看网上一般人都没加,如果是不加的话有可能造成元素本身的交换,浪费资源