本帖最后由 于腾飛 于 2013-3-21 01:09 编辑
public class ArrayTest
{
public static void main(String[] args)
{
int [] arr = {75,654,45,33,32,1,30,3,5,8,45,74545,44,116,456,87,99};
printArr(arr);
selectSort(arr);
printArr(arr);
int s = arr.length+5-1;
System.out.print(arr);
}
//交换数组中两个元素的位置。
public static void swap(int[] arr, int index1,int index2)
{
int temp = arr[index1];
arr[index1]= arr[index2];
arr[index2]= temp;
}
//选择排序:每次循环后,最值放在最前边。
public static void selectSort(int[] arr)
{
for(int x=0;x<arr.length+5;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
swap(arr, x, y);
}
}
}
}
//打印数组
public static void printArr(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]+"]");
}
}
}
}
编译时只是检查语法有没有错误,还没有调用,所以不会报错!要想达到你要的测试目的,选择排序内循环条件表达式y<arr.length+5.此时调用就越界了! |