java - Java中整数的选择排序

标签 java arrays sorting selection-sort

我正在编写一个选择排序代码,用于在 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/

相关文章:

java - 数组列表按顺序排序

javascript - 使用 Javascript 和 lodash 进行多条件排序对象键

java - 了解 servlet 中的 out.println

java - 如何使用 java 读取 Windows 日志 evt/evtx 文件

java - 如果输入数字已经在数组 "Retry"中,则将不同的值数字放入数组中

java - 根据用户需要自动创建新变量

java - gradle springboot 和 postgresql 入门遇到问题

javascript - 如何在不使用 EVAL 的情况下处理两个数组对象

arrays - 无法在 Bash Shell 脚本中打印整个数组

c# - 无法使用 gridview 正确排序数据 int