本帖最后由 nicholyx 于 2014-3-17 19:30 编辑
数组下标越界了,改正之后如下,加上了打印数组语句
- class Test
- {
- public static void main(String[] args)
- {
- int[]arr={3,5,6,7,1,9,12};
- printArray(arr);
- selectSort(arr);
- printArray(arr);
- }
- public static void selectSort(int[] arr)
- {
- for(int x=0;x<arr.length-1;x++)
- {
- for(int y=x+1;y<arr.length;y++) //最后的语句是y++,原来的是x++
- {
- if(arr[x]>arr[y])
- swap(arr,x,y);
- }
- }
- }
- public static void swap(int[] arr,int a,int b)
- {
- int temp=arr[a];
- arr[a]=arr[b];
- arr[b]=temp;
- }
- public static void printArray(int[] arr) { //数组打印语句
- System.out.print("[");
- for(int i = 0; i < arr.length; i++) {
- if(i < arr.length - 1) {
- System.out.print(arr[i] + ", ");
- } else {
- System.out.println(arr[i] + "]");
- }
- }
- }
- }
- /*
- 输出结果:
- [3, 5, 6, 7, 1, 9, 12]
- [1, 3, 5, 6, 7, 9, 12]
- */
复制代码 |