public class Test1 {
public static void main(String[] args) {
Integer[] arr= {70,120,10,20,50,60,30,40,980};
Test1 test1 = new Test1();
// test1.maopao(arr);
test1.kuaisu(arr, 0, arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/**
* 快速排序,二分法
* @param arr
*/
public void kuaisu(Integer[] arr,int low,int length) {
int i,j,temp,t;
// 如果下标大于最大长度,跳出
if(low>length) return;
i=low;
j=length;
// 基准位
temp=arr[low];
// 循环
while(i<j) {
while(temp<=arr[j] && i<j) {
j--;
}
while(temp>=arr[i] && i<j) {
i++;
}
if (i<j) {
t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
arr[low]=arr[i];
arr[i]=temp;
kuaisu(arr, low, j-1);
kuaisu(arr, j+1, length);
}
}