如何在选择排序后显示位置如何变化?

时间:2018-01-25 03:15:56

标签: java arrays sorting

我编写了一个选择排序程序,我想知道我是否想通过显示值的位置如何变化来添加它,是否可能?

这是我的选择排序代码

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

3 个答案:

答案 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。

祝你好运。