我对此选择排序的输出有问题>>输出显示跟随零的集合然后是正确答案>>如何消除这些零?
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(", ");
}
}
}
答案 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];
.....
.....