数组的插入处理

数组插入处理

题目描述
已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入
第一行,原始数列。 第二行,需要插入的数字。
输出
排序后的数列
样例输入
1 7 8 17 23 24 59 62 101
50
样例输出
1
7
8
17
23
24
50
59
62
101

解题思路
这道题其实不是很难
难点应该在于数组增加长度以及最后冒泡排序
这道题先将原本的数据插入数组,然后通过Arrays.copyOf方法将数组的长度加一,在将新的数据插入到数组的最后,通过冒泡排序完成后输出即可
详情代码如下:

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int arr[] = new int[9];
     for (int i = 0; i < arr.length; i++) {
		arr[i]=sc.nextInt();
	}
     arr = Arrays.copyOf(arr, arr.length+1);//数组长度加一
     arr[arr.length-1] =sc.nextInt();//添加新数字
     for (int i = 0; i < arr.length; i++) {
		for (int j = 0; j < arr.length-i-1; j++) {
			//冒泡排序将数组从新排序一下
			if (arr[j]>arr[j+1]) {
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
     for (int i = 0; i < arr.length; i++) {
		System.out.println(arr[i]);
	}
    }
}
`vector` 是 C++ 标准模板库(STL)中的一个动态数组容器,它可以自动管理内存分配和内存释放。使用 `vector` 可以避免传统数组需要手动处理内存的问题。在 `vector` 中插入元素可以使用多种成员函数来完成,以下是几种常见的插入操作: 1. `push_back(T val)`:在 `vector` 的末尾插入一个元素,如果需要,`vector` 的大小会自动增加。这是最常用的插入方法,用于在容器末尾添加新元素。 2. `insert(iterator pos, T val)`:在迭代器 `pos` 指定的位置插入一个元素,如果需要,`vector` 的大小也会自动增加。`pos` 必须是一个有效的迭代器,指向 `vector` 中的一个元素或者 `vector` 的末尾。 3. `insert(iterator pos, size_type count, const T& val)`:在迭代器 `pos` 指定的位置插入 `count` 个相同的元素 `val`。 4. `insert(iterator pos, InputIterator first, InputIterator last)`:在迭代器 `pos` 指定的位置插入另一个范围 `[first, last)` 的所有元素。这个范围可以是一个数组,一个 `vector`,或者任何其他可以迭代的容器。 插入操作可能会导致 `vector` 内存的重新分配,因为 `vector` 在内部是连续存储的。当插入新元素时,如果当前的内存空间不足,`vector` 会自动分配一个更大的内存空间,并将现有元素复制到新内存中,然后释放旧内存,并插入新元素。 使用 `vector` 的插入操作需要注意,频繁地插入元素可能会影响性能,特别是当插入位置在 `vector` 的开始或中间时,因为这需要移动大量的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值