【java学习笔记23】数组排序算法之快速排序
package ArraySorted; import java.util.Arrays; public class ArrayTest09 { public static void main(String[] args) { int[] array = {4,10,8,7,5,6,1,9}; QuickSort.quicksort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } }
package ArraySorted; public class QuickSort { public static void quicksort(int[] array,int start,int end){ // 对左右两个分区进行递归调用 if (start < end){ int index = getIndex(array,start,end); quicksort(array,start,index-1); quicksort(array,index+1,end); } } private static int getIndex(int[] array,int start,int end){ int i = start; int j = end; int x = array[i]; while (i < j){ // 从后往前找 while (i<j && array[j] >=x){ j--; } if (i < j){ array[i] = array[j]; i++; } // 从前往后找 while (i<j && array[i] < x){ i++; } if (i < j){ array[j] = array[i]; j--; } } array[i] = x; return i; } }
---------------------------------------------------
立足软件测试领域,并重新定义测试!
---------------------------------------------------