Java : Selection Sort Logic

标签 java selection-sort

我正在使用选择排序打印排序数组元素。但我以相同的顺序获取输入数组元素作为输出,而无需排序。

public class SelectionSort {
        public static void main(String[] args) {

        int[] arr= {1,9,3,0,7};
        int n=arr.length;
        for(int i=0; i<n-1; i++)
        {
            int minimumIndex = i;
            for(int j=i; j<n; j++)
            {
                if(arr[j]<arr[minimumIndex])
                {
                    minimumIndex=j;
                }
            }
            int temp=arr[i];
            arr[i]=arr[minimumIndex];
            arr[i]=temp;
        }

        for(int e: arr)
        {
            System.out.print(e+" ");
        }
    }
}

预期输出:0 1 3 7 9 实际操作数:1 9 3 0 7

最佳答案

在您的方法代码中,实际问题是交换元素,

序列需要如下所示,

int temp=arr[minimumIndex];  
arr[minimumIndex]=arr[i];
arr[i] =temp;

而不是

 int temp=arr[i];
 arr[i]=arr[minimumIndex];
 arr[i]=temp;

关于Java : Selection Sort Logic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156290/

相关文章:

java - 在Google应用程序引擎中如何删除最初使用FileService存储的文件

java - Gradle 使用不同的资源和类进行多次 war

javascript - 做,你所有的断言都通过了吗?这是错误

java - 来自不同降压模块的注释处理器的聚合输出

java - 从 Assets 文件中解析 XML

java - 创建子类时父类(super class)打印意外值

c++ - 如何正确地将选择排序算法重新设计为冒泡排序?

java - 对 ArrayList 类型的对象实例进行选择排序会产生奇怪的结果

Java 交换无效

java - 使用对象,使用 for 循环从最高到最低打印出学生及其成绩