public void quickSort(int[] arr, int low, int high) { if (low > high) return; //确认左指针 int i=low; //确认右指针 int j=high; //确定校验位 一般是第一个 int temp=arr[low]; //交换元素的工具 int t; //开始循环 while (i<j){ while (i<j&&arr[i]<temp) i++; while (i<j&&arr[j]>temp) j++; //此时出现情况只能是上面两个都出现了问题,无法循环 只需要判断i<j 为真即可交换位置 if (i<j){ t=arr[i]; arr[i]=arr[j]; arr[j]=t; } } //循环完成 此时i=j 交换首个元素与a[i]的值 arr[low]=arr[i]; arr[i]=temp; //开始递归 sort(arr,low,j-1); sort(arr,j+1,high); }