D:\JAVA\day6>javac Arraytool.java
D:\JAVA\day6>javac ArrayDemo.java
D:\JAVA\day6>java ArrayDemo
[6,2,5,7,9,4,2]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at ArrayTool.swap(Arraytool.java:51)
at ArrayTool.selectSort(Arraytool.java:32)
at ArrayDemo.main(ArrayDemo.java:8)
D:\JAVA\day6>
这个是cmd里面显示的,编译已经成功了,但是运行出现错误。
class ArrayDemo
{
public static void main(String[] args)
{
int[] arr={6,2,5,7,9,4,2,};
ArrayTool tool=new ArrayTool();
tool.printArray(arr);
tool.selectSort(arr);
tool.printArray(arr);
}
}
这个是我的主函数。第一个打印数组成功打印。第二步出现错误。是一个选择排序功能,
class ArrayTool
{
public int getMax(int[] arr)
{
int max=0;
for(int x=1;x<arr.length;x++)
{
if (arr[x]>arr[max])
max=x;
}
return arr[max];
}
public int getMin(int[] arr)
{
int min=0;
for(int x=1;x<arr.length;x++)
{
if (arr[x]<arr[min])
{
min=x;
}
}
return arr[min];
}
public 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,x,y);
}
}
}
public void bubbleSort(int[] arr)
{
for (int x=0;x<arr.length-1 ;x++ )
{
for (int y=0;y<arr.length-x-1 ;y++ )
{
if(arr[y]>arr[y+1])
swap(arr,y,y+1);
}
}
}
public void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=arr[temp];
}
public 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]+"]");
}
}
}
这是另一个类,分别在两个文件,这两个文件夹在一起,getMax,getMin,功能都可以使用,唯独使用选择排序和冒泡排序时出现命令行中的错误,求大神搭救!!!!!!!!!!!!!! |
|