import java.util.Arrays;
//=================================================
// File Name : Arrays_Quick
//------------------------------------------------------------------------------
// Author : Common
//类名:Arrays_Quick
//属性:
//方法:
class Arrays_Quick{
private int[] arrays;
private int curNum;
public Arrays_Quick(int max) { //建立一个max长度的空数组
super();
arrays = new int[max];
curNum = 0;
}
public void insert(int value){ //往空的数组里面增加元素
arrays[curNum] = value;
curNum++;
}
public void display(){ //显示数组
System.out.println(Arrays.toString(arrays));
}
public void QuickSort(){
int i=0;
int j=arrays.length-1;
recQuickSort(i, j);
}
public void recQuickSort(int i,int j){
// 结束条件
if(i == j )
return;
int key = arrays[i];
int stepi = i; // 记录开始位置
int stepj = j; // 记录结束位置
while(j > i){
// j <<-------------- 向前查找
if(arrays[j] >= key){
j--;
}else{
arrays[i] = arrays[j];
//i++ ------------>>向后查找
while(j > ++i){
if(arrays[i] > key){
arrays[j] = arrays[i];
break;
}
}
}
}
// 如果第一个取出的 key 是最小的数
if(stepi == i){
recQuickSort(++i, stepj);
return;
}
// 最后一个空位留给 key
arrays[i] = key;
// 递归
recQuickSort(stepi, i);
recQuickSort(j, stepj);
}
}
//主类
//Function : QuickSort
public class QuickSort {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int maxSize = 5;
Arrays_Quick arrays_demo = new Arrays_Quick(maxSize);
arrays_demo.insert(4);
arrays_demo.insert(5);
arrays_demo.insert(3);
arrays_demo.insert(1);
arrays_demo.insert(2);
arrays_demo.display();
arrays_demo.QuickSort();
arrays_demo.display();
}
}