我编写了一个选择排序程序,我想知道我是否想通过显示值的位置如何变化来添加它,是否可能?
这是我的选择排序代码
import java.util.Scanner;
public class SelectionSort {
public static void main(String args[]) {
// int[] arr = {5,4,3,2,1}; // This is my array
int min = 0;
Scanner sc = new Scanner(System.in);
System.out.println("No of elements : ");
int noOfElements = sc.nextInt();
int[] arr = new int[noOfElements];
System.out.println("Give elements : ");
for (int i = 0; i < noOfElements; i++) {
arr[i] = sc.nextInt();
}
for (int i = 0; i < arr.length; i++) {
// Assume first element is min
min = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
System.out.println("Sorted Elemenst : " + arr[i]);
}
}
}
答案 0 :(得分:0)
如果您在每次迭代后尝试获取数组,则应在每次迭代结束时使用 Arrays#toString() 打印以打印完整数组
for (int i = 0; i < arr.length; i++) {
...
.....
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
System.out.println("Sorted Elements : " + Arrays.toString(arr));
}
答案 1 :(得分:-1)
我不知道你的'任务'是编写自己的排序方法,但如果你正在寻找排序数组,你应该使用它:
public static void main(String[] args) {
int[] arr = {5,4,3,2,1};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
答案 2 :(得分:-1)
永远不要假设用户可能输入的内容,因此永远不要假设第一个条目是最小值。
这个问题在StackOverflow中已经出现了很多,因此我只能假设这是作业。考虑到这一点,我确定赋值意图是接受来自用户的特定数量的随机整数值,将这些值放入整数数组,然后以升序顺序对该数组进行排序。在排序过程中显示(在控制台中显示)正在发生的步骤(在数组中交换哪些值)。
这里有一个提示,研究 Bubble Sort 以及完成整数数组中整数数字排序任务所需的一小段代码。通常,冒泡排序使用两个用于循环来执行排序。它位于第二个 for 循环中,您可以详细说明执行排序所需的过程(步骤),以便在执行排序时将Array元素值与其他元素值交换。它将位于 if 语句代码块中,该代码块检查前一个Array元素是否大于当前的Array Element。
祝你好运。