0
点赞
收藏
分享

微信扫一扫

头歌JAVA-第1关:学习-Java数组之一维数值数组之排序

zhongjh 2022-04-08 阅读 141
java

本关任务:使用直接选择排序(按升序)对给定的数组排序,并输出每次排序结果以及排序完成后的数组。

思路:

1、输入数组长度

2、输入待排序数组

3、第一层循环:找到数组长度-1个下标,并且设置一个变量min接受最小值下标

4、第二层循环:将第一层循环每个下标与其下一个小标所表示的数组数比较,若有最小值,将该数下标赋给min,并进行交换,打印。

具体细节见代码:

import java.util.Scanner;
import java.util.Arrays;

public class SortTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); //输入的第一个数为数组的长度
        int[] arr = new int[n];
        for (int i = 0; i < n; i++){
            arr[i] = sc.nextInt();
        }
        for (int i = 0; i < arr.length - 1;i++){ // i可取0 1 2 3 ... arr.length - 1
            int min = i; // 当i取到arr.length-1时j=arr.length不满足for循环条件,所以这里会出现 min = i 的时候,不能打印
            for (int j = i + 1; j < arr.length; j++){  // j 可取1 2 .... length - 1
                if (arr[min] > arr[j]){
                    min = j;        //找出最小值索引下标
                }
            }
            int temp = arr[min];
            arr[min] = arr[i];
            arr[i] = temp;          
         System.out.println("第"+(i+1)+"次排序:"+Arrays.toString(arr));
            
        }
        System.out.println("排序后的结果为:"+Arrays.toString(arr));
        // 输出排序后的数组
    }
}
举报

相关推荐

0 条评论