Java 中整数的选择排序
Selection sorting of integers in Java
我正在编写一个选择排序代码来对 Java 中的十个整数数组进行排序。我写了这个:
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++) { ... }
在内部循环中,您将 if 内的 min 分配给外部值索引的数组值。
min = 数组[i];
可能不相关但不应该
min = 数组[j];
我正在编写一个选择排序代码来对 Java 中的十个整数数组进行排序。我写了这个:
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++) { ... }
在内部循环中,您将 if 内的 min 分配给外部值索引的数组值。
min = 数组[i];
可能不相关但不应该
min = 数组[j];