class demo0503
{
public static void printArray(int[] arr)
{
System.out.print("[");
for (int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[] args)
{
int[] arr={33,77,57,66,44,88,55};
printArray(arr);
selectSort(arr);
printArray(arr);
}
public static void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
public static void selectSort(int[] arr)
{
for (int x=0;x<arr.length-1;x++ )
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
swap(arr,y,y+1);
}
}
}
}
错误如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at demo0503.swap(demo0503.java:31)
at demo0503.selectSort(demo0503.java:43)
at demo0503.main(demo0503.java:24)
求助老鸟解答,java版本12