package cn3.test3.to1;
/**
* Created
*/
public class QuickSort {
public static void quickSort(int[] array,int start,int end)
{
if(start<end)
{
int key=array[start];//初始化保存基元
int i=start,j;//初始化i,j
for(j=start+1;j<=end;j++)
{
if(array[j]<key)//如果此处元素小于基元,则把此元素和i+1处元素交换,并将i加1,如大于或等于基元则继续循环
{
int temp=array[j];
array[j]=array[i+1];
array[i+1]=temp;
i++;
}
}
array[start]=array[i];//交换i处元素和基元
array[i]=key;
quickSort(array, start, i-1);//递归调用
quickSort(array, i+1, end);
}
}
public static void main(String[] args)
{
int[] array=new int[]{9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
quickSort(array, 0, array.length-1);
for(int i=0;i<array.length;i++)
{
System.out.print(","+array[i]);
}
}
public void testSay(int[] array){
for(int i=0;i<array.length;i++)
{
System.out.print(","+array[i]);
}
}
}
public class Test4 {
public static void main(String[] args) throws Exception{
int[] array=new int[]{9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
Class clazz = Class.forName("cn3.test3.to1.QuickSort");
Object o = clazz.newInstance();
Method quickSort = clazz.getDeclaredMethod("quickSort",int[].class,int.class,int.class);
quickSort.invoke(o,array,0,array.length-1);
Method testSay = clazz.getDeclaredMethod("testSay",int[].class);
testSay.invoke(o,array);
}
}