package com.suanfa;
//角标越界
import java.util.Arrays;public class kuai_pai2 {
public static void main(String[] args) {
int[] arr={10,6,1,2,7,9,3,4,1,0};
quickSort(arr,0,arr.length);
System.out.print(Arrays.toString(arr));
}
public static void quickSort(int[] date,int left,int right){
int i,j,t,temp;
temp=date[left];
i=left;
j=right;
if(left>right){
return;
}
while(date[j]>=temp && i<j){
right--;
}
while(date[i]<=temp && i<j){
left++;
}
if(i<j){
t=date[i];
date[i]=date[j];
date[j]=temp;
}//完成第一轮转换,即所有小于基数的数和所有大于基数的数相换
//将基数与i,j碰面的值交换,即基数归位
date[left]=date[i];
date[i]=temp;
quickSort(date,left,i-1);
quickSort(date,i, i+1);
}
}
//角标越界
import java.util.Arrays;public class kuai_pai2 {
public static void main(String[] args) {
int[] arr={10,6,1,2,7,9,3,4,1,0};
quickSort(arr,0,arr.length);
System.out.print(Arrays.toString(arr));
}
public static void quickSort(int[] date,int left,int right){
int i,j,t,temp;
temp=date[left];
i=left;
j=right;
if(left>right){
return;
}
while(date[j]>=temp && i<j){
right--;
}
while(date[i]<=temp && i<j){
left++;
}
if(i<j){
t=date[i];
date[i]=date[j];
date[j]=temp;
}//完成第一轮转换,即所有小于基数的数和所有大于基数的数相换
//将基数与i,j碰面的值交换,即基数归位
date[left]=date[i];
date[i]=temp;
quickSort(date,left,i-1);
quickSort(date,i, i+1);
}
}
解决方案 »
- SQL中无法使用条件 IN 进行变量绑定
- 如何在JPanel上添加带有滚动条的JList组件?
- java.net.URL getResource(String name)
- 初学者问个有关对象初始化的问题,谢谢
- 请问在java中如何自定义事件,谢谢!!
- 处学者的问题!有原代码,近来帮帮忙!
- 急!急!applet的codebase问题
- 紧急求助:java中如何取系统时间?把月份单独取出来--在线等
- 请问怎样判断用户按下的鼠标左键还是右键啊?急急急急急急急
- 当你神经紧张时,就不用脑子去狂点鼠标,看看你15秒内能点几下鼠标,事先声明,鼠标坏了可别找我啊
- 前后台分离 该如何实现登陆与权限的认证?
- 小白提问:java cmd编译运行问题
public static void quickSort(int[] date,int left,int right){
if(left>=right){
return;
}
int i,j,t,temp;
temp=date[left];
i=left;
j=right-1;
while(true){
while(j>0 && date[j]>=temp){
j--;
}
while(i<j && date[i]<=temp){
i++;
}
if(i<j){
t=date[i];
date[i]=date[j];
date[j]=t;
}else{
break;
}
}
date[left]=date[i];
date[i]=temp;
quickSort(date,left,i);
quickSort(date,i+1, right);
}