我在编写快速排序的代码中出现了类型转换错误,帮我看看哪里出错了?
package imu.question;
import java.util.Arrays;
public class QuickSort {
public static void main(String[] args) {
int[] arr = {49,38,65,97,23,22,76,1,5,8,2,0,-1,22};
System.out.println("排序前:");
for(int i:arr) {
System.out.print(i+" ");
}
System.out.println();
quickSort(arr,0,arr.length-1);
System.out.println("排序后:");
for(int j:arr)
System.out.print(j+" ");
}
private static void quickSort(int[] arr, int low, int high) {
if(low<high) {
int index=getIndex(arr,low,high);
quickSort(arr,0,index-1);
quickSort(arr,index+1,high);
}
}
private static int getIndex(int[] arr, int low, int high) {
int tmp=arr[low];
while(low<high) {
while(low<high && arr[high]>=tmp) {
high--;
}
arr[low]=arr[high];
while(low<high && arr[low]<=tmp) {
low++;
}
arr[high]=arr[low];
}
tmp=arr[low];
return low;
}
}
运行结果如下