我正在编写一个选择排序代码,用于在 Java 中对包含 10 个整数的数组进行排序。我写了这个:
import java.io.*;
class selectint
{
int array [] = new int[10];
public void sort(int arr[])
{
int i = 0;
int length = array.length;
for(i = 0; i<length ; i++)
{
int min = array[i];
int pos = i;
for(int j = i+1; j<length; j++)
{
if (min>array[j])
{
min = array[i];
pos = j;
}
}
int t = array[pos];
array[pos] = array[i];
array[i] = t;
System.out.println(array[i]);
}
}
public static void main(String args[])throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
selectint obj = new selectint();
System.out.println("Enter any 10 numbers");
String str;
int num[] = new int[10];
int i;
for( i = 0; i<10; i++)
{
str = br.readLine();
num[i] = Integer.parseInt(str);
}
obj.sort(num);
}
}
没有弹出编译错误或语法错误。然而,这里存在一个相当大的逻辑错误。我输入了一组 10 个整数,但排序后打印的只是一组 10 个“0”。我该如何解决这个问题? TIA。
最佳答案
将 sort
方法中 array
的所有用法替换为 arr
,这是您要排序的参数。
任何 IDE 都应该告诉您这里未使用 arr
:
public static void sort(int arr[])
<小时/>
此外,您应该删除 i
的双重初始化:
// remove previous `i` variable declaration
for(int i = 0; i<length ; i++) { ... }
关于java - Java中整数的选择排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872798/