public void sort(int left,int right,int arry[])
{
//先找到一个中间数
int pivot = arry[(left+right)/2];
int temp=0;
while(left<right)
{
while(arry[left]<pivot) left++;
while(arry[right]>pivot) right--;
if(left>=right)
break;
temp=arry[left];
arry[left]=arry[right];
arry[right]=temp;
if(arry[left]==pivot) --right;
if(arry[right]==pivot) ++left;
}
if(left==right)
{
left++;
right--;
}
if(left<right)
sort(left,right,arry);
if(right>left)
sort(left,right,arry);
}
mian方法调用
public static void main(String[] args) {
int len = 800000;
int[] arry= new int[len];
for(int i=0;i<len;i++)
{
int rod = (int)(Math.random()*10000);
arry[i]=rod;
}
QuickSort qs = new QuickSort();
Calendar cal = Calendar.getInstance();
System.out.println("开始时间"+cal.getTime());
qs.sort(0,arry.length-1, arry);
cal = Calendar.getInstance();
System.out.println("结束时间"+cal.getTime());
/* for(int i=0;i<arry.length;i++)
{
System.out.println(arry[i]+" ");
}*/
}
------解决方案--------------------