while(i < j){ //注意先j-- 在i++ 这样保证i == j 时上面while循环结束 //后nums[i]位置的元素是比基准小的 后面方便交换 while(temp <= nums[j] && i < j) j--; while(temp >= nums[i] && i < j) i++; if(i < j) swap(nums,i,j); } //交换基准元素和i j重合的元素 这样基准元素就在中间了 //左边是比他小的 右边是比它大的 swap(nums,low,i);
//递归调用左边和右边 quickSort(nums,low,j-1); quickSort(nums,j+1,high); } //数组元素交换函数 private void swap(int[] nums, int index1, int index2) { int temp = nums[index1]; nums[index1] = nums[index2]; nums[index2] = temp; } }