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];