选择按输出问题排序

时间:2014-04-11 14:30:23

标签: java data-structures

我对此选择排序的输出有问题>>输出显示跟随零的集合然后是正确答案>>如何消除这些零?

package lap;

import java.util.Scanner;

  public class MySelectionSort {

    public static int[] doSelectionSort(int[] arr){

        for (int i = 0; i < arr.length - 1; i++)
        {
            int index = i;
            for (int j = i + 1; j < arr.length; j++)
                if (arr[j] < arr[index]) 
                    index = j;

            int smallerNumber = arr[index];  
            arr[index] = arr[i];
            arr[i] = smallerNumber;
        }
        return arr;
    }

    public static void main(String a[]){
        int []A=new int[100];
        int N; 
        Scanner scan=new Scanner(System.in);
        System.out.print(" enter array size");
        N=scan.nextInt();
        System.out.print(" enter array elments");

        for (int i=0; i<N;i++){
           A[i]=scan.nextInt();    
        }
        // int[] arr1 = {10,34,2,56,7,67,88,42};
        int[] arr2 = doSelectionSort(A);
        for( int i=0;i<arr2.length;i++){
            System.out.print(arr2[i]);
            System.out.print(", ");
        }
    } 
}

1 个答案:

答案 0 :(得分:0)

使用数组大小​​int []A=new int[100];而非N初始化100。这将解决问题。所以基本上你将元素数组初始化为100,而你的数组中将有N个元素,这是用户提供的值。

所以更新的代码是:

public static void main(String a[]){
    int N;
    Scanner scan=new Scanner(System.in);
    System.out.print(" enter array size");
    N=scan.nextInt();
    System.out.print(" enter array elments");
    int []A=new int[N];
    .....
    .....