【问题标题】:Selection sorting.ArrayIndexOutOfBoundsException [duplicate]选择排序.ArrayIndexOutOfBoundsException [重复]
【发布时间】:2016-11-12 06:06:55
【问题描述】:

我在运行这个程序时遇到“线程“main”java.lang.ArrayIndexOutOfBoundsException: 6”错误。此代码用于实现选择排序。请有人帮助我。

package Sorting;

public class Selection {

    public static void sort(int[] array) {

        int min, temp;

        for (int i = 0; i <= array.length-1  ; i++) {
            min = i;
            for (int j = i+1; j <= array.length   ; j++) {
                if (  array[j]<array[min]) {
                    min = j;
                }

            }
            temp = array[min];
            array[min]=array[i];
            array[i] = temp;

        }
    }

    public static void main(String[] args) {
        int a[]  = {51,6,3,55,34,12 };
        sort(a);
        for (int i  :a) {
            System.out.println(a[i]);
        }
    }

}

【问题讨论】:

  • j &lt;= array.length。没有。 &lt;.

标签: java data-structures


【解决方案1】:

这是更正后的代码。

public class Selection {

    public static void sort(int[] array) {

        int min, temp;

        for (int i = 0; i <= array.length-1  ; i++) {
            min = i;
            for (int j = i+1; j <= array.length-1   ; j++) {
                if (  array[j]<array[min]) {
                    min = j;
                }

            }
            temp = array[min];
            array[min]=array[i];
            array[i] = temp;

        }
    }

    public static void main(String[] args) {
        int a[]  = {51,6,3,55,34,12 };
        sort(a);
        for (int i=0;i<a.length ;i++) {
            System.out.println(a[i]);
        }
    }

}

【讨论】:

    【解决方案2】:

    Hey for each 不返回索引,它是每个元素的返回值,所以你应该在下面打印结尾

    for (int i  :a) {
                System.out.println(i);
            }
    

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2014-07-17
      • 2015-11-08
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多