淋风沐雨 2021-02-04 13:05 采纳率: 0%
浏览 28

java选择排序:无法调用swapArray方法

package 排序;

public class xuanzhe {
    public static void main(String[] args) {
//        选择排序
        int a[]= {123,1231,21,31,23121,1123};
        System.out.println("请输入数组");
        printArray(a);
        System.out.println("排序完成");
        selectSorr(a);
        printArray(a);
    }

    public static void selectSorr(int[] a) {
        // TODO 自动生成的方法存根
        int i=0;
        int j=0;
        int min_index=0;
        for ( i = 0; i < a.length; i++) {
            min_index=i;
            for (j = i+1; j < a.length; j++) {
                min_index=j;
            }
        }
        if (i!=min_index) {
            swapArray(i,j,a);
        }
    }
//    无法调用swapArray方法
    public static void swapArray(int i,int j, int []a) {
        // TODO 自动生成的方法存根
        int temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }

    public static void printArray(int[] array) {
        // TODO 自动生成的方法存根
        for(int i:array) {
            System.out.print(i+" ");
        }
        System.out.println();
    }
}
 

  • 写回答

3条回答 默认 最新

  • 血舞齐天 2021-02-04 13:24
    关注

    int i与j声明在for循环之外。在最后一次循环中即便没有进入循环体,但是i++执行了,最终i=6数组越界

    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵