public void Run(int[] arr, int begin, int end) { //一个递归,不断的对数组进行排序
if (begin < end) { //只有开始索引比结束索引小的时候才进行排序
/*你这中间值也用KEY太蒙人,是不是应该换个*/
int key = getMiddle(arr, begin, end); //进行排序并返回中间值的位置
Run(arr, begin, key - 1); //对中间的左边进行递归
Run(arr, key + 1, end); //对中间的右边进行递归
}
}
public int getMiddle(int[] arr, int frist, int last) {
int begin = frist; //开始索引等于数组第一个下标
int end = last; //结束索引等于数组长度减一
//int key = frist; //基准数的索引等于数组的第一个索引
int key = arr[frist];
while (begin < end) { //每当开始索引小于结束索引的时候都不断的排序