java选择排序下标交换和下标对应的值的交换
程序员文章站
2022-06-12 08:02:24
将下标对应的值的交换 改为下标的交换 数组的选择排序成功,为什么会提示数组索引访问越界? ......
class a4 { public static void main(string[] args) { int [] arr = {1, 8, 3, 6, 5, 2}; printnumber(arr); sort2(arr); printnumber(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 sort2(int[] arr) { for(int i=0; i<arr.length-1; i++) { int num = arr[i]; int index = i; for(int j=i+1; j<arr.length; j++) { if(num>arr[j]) { num = arr[j]; index = j; } } if(i!=index) swap(arr, num, arr[i]); } } public static void printnumber(int [] arr) { for(int i=0; i<arr.length; i++) { system.out.print(arr[i]+" "); } system.out.println(); } }
将下标对应的值的交换----改为下标的交换
数组的选择排序成功,为什么会提示数组索引访问越界?