我正在使用选择排序打印排序数组元素。但我以相同的顺序获取输入数组元素作为输出,而无需排序。
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/