Java 代码实现有序数组插入元素并保持排序

本示例展示如何使用 Java 代码将一个新整数插入到已排序的整数数组中,并保持数组的排序顺序。

问题描述:

假设有一个包含 n (n <= 100) 个整数的数组,这些整数已经按照从小到大顺序排列。现在需要将一个新整数 x 插入到这个数组中,并使新的排序仍然有序。输入数据包含多个测试实例,每组数据由两行组成:

  • 第一行是 n 和 m,分别表示数组长度和要插入的整数。
  • 第二行是已经有序的 n 个整数的数列。

当 n 和 m 同时为 0 时,表示输入数据的结束。

对于每个测试实例,需要输出插入新数后的有序数列。

示例输入:

3 3
1 2 4
0 0

示例输出:

1 2 3 4

代码实现:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            if (n == 0 && m == 0) {
                break;
            }
            int[] nums = new int[n];
            for (int i = 0; i < n; i++) {
                nums[i] = scanner.nextInt();
            }
            int[] newNums = new int[n + 1];
            int index = 0;
            for (int i = 0; i < n; i++) {
                if (nums[i] < m) {
                    newNums[index++] = nums[i];
                } else {
                    newNums[index++] = m;
                    for (int j = i; j < n; j++) {
                        newNums[index++] = nums[j];
                    }
                    break;
                }
            }
            if (index == n) {
                newNums[index] = m;
            }
            for (int i = 0; i < n + 1; i++) {
                System.out.print(newNums[i] + " ");
            }
            System.out.println();
        }
    }
}

代码解析:

  1. 使用 Scanner 类读取输入数据,包括数组长度、要插入的整数以及已排序的数组。
  2. 创建一个新的数组 newNums,长度为原始数组长度加 1,用于存储插入新整数后的结果。
  3. 遍历原始数组,找到合适的位置插入新整数。如果当前元素小于要插入的整数,则将当前元素添加到 newNums 数组中;否则,将要插入的整数添加到 newNums 数组中,并将当前元素以及之后的元素添加到 newNums 数组中。
  4. 如果遍历完原始数组后,还没有找到合适的插入位置,则将要插入的整数添加到 newNums 数组的末尾。
  5. 输出 newNums 数组,即插入新整数后的有序数组。

总结:

该代码使用简单的循环迭代和判断逻辑,实现了将一个新整数插入到已排序的数组中并保持排序的功能。代码简洁易懂,适合初学者学习。

Java 代码实现有序数组插入元素并保持排序

原文地址: http://www.cveoy.top/t/topic/mJIs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录