在有序的数组中插入任意值

 public static void main(String[] args) {
        //定义一个有序数组(如果数组是无序的,可以先对数组进行排序)随机存放一些数据
        int[] arr1 = new int[]{12,14,23,45,66,68,70,77,90,91};

        //由于数组长度不可变,想要插入一个数据,就得创建一个更大的数组,这里在arr1的基础上+1;
        int[] arr2 = new int[arr1.length+1];

        //从键盘上输入要插入的数据比如:50
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int num = scanner.nextInt();

        //用for循环同时遍历旧数组和新数组,将旧数组的值赋值给新数组
        for (int i = 0; i < arr2.length-1; i++) {
            if (arr1[i] < num){
                arr2[i] = arr1[i];//因为数组是有序的,只要比输入的数小都可以直接放入新数组中
            }else{
                arr2[i+1] = arr1[i];//此时比输入的数小的数都放置完成,隔一个位置,开始放比输入的数大的数
            }
        }
        //遍历结果为 12 14 23 45 0 66 68 70 77 90 91


        //此时我们只要遍历数组,将输入的数赋值给值为 0 的下标,插入的操作就完成了
        for (int i = 0; i < arr2.length; i++) {
            if (arr2[i] == 0){
                arr2[i] = num;
            }
        }

        //遍历数组,验证结果为:12 14 23 45 50 66 68 70 77 90 91 
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i] + " ");
        }
    }

JavaScript中,可以通过多种方式向数组插入,尤其是根据插入位置的不同(如数组末尾、开头或特定索引处),可以使用不同的方法实现。以下是一些常见方法及其适用场景。 ### 在数组末尾添加元素 使用 `push()` 方法可以在数组的末尾添加一个或多个元素,并返回新的长度[^3]。 ```javascript let arr = [1, 2, 3]; arr.push(4); console.log(arr); // 输出: [1, 2, 3, 4] ``` ### 在数组开头添加元素 使用 `unshift()` 方法可以在数组的开头添加一个或多个元素,该方法会改变原数组,并返回新的长度[^3]。 ```javascript let arr = [2, 3, 4]; arr.unshift(1); console.log(arr); // 输出: [1, 2, 3, 4] ``` ### 在数组特定索引处插入元素 使用 `splice()` 方法可以在数组的特定索引处插入元素。此方法会修改数组内容,从指定索引开始删除一定数量的元素,并在该位置插入新元素[^1]。 ```javascript let arr = [1, 2, 4, 5]; arr.splice(2, 0, 3); // 从索引2开始,删除0个元素,并插入3 console.log(arr); // 输出: [1, 2, 3, 4, 5] ``` ### 在有序数组插入元素并保持顺序 在有序数组插入元素时,需要先找到合适的位置,确保插入数组仍然有序。可以使用 `splice()` 方法结合查找逻辑实现[^4]。 ```javascript let arr = [1, 5, 7, 11, 88]; let num = 6; let index = 0; for (let i = 0; i < arr.length; i++) { if (arr[i] >= num) { index = i; break; } } if (index >= arr.length) { arr.push(num); } else { arr.splice(index, 0, num); } console.log(arr); // 输出: [1, 5, 6, 7, 11, 88] ``` ### 手动实现数组插入操作 如果不使用 `splice()` 方法,也可以手动创建一个新数组,将原数组的部分元素复制到新数组中,并在指定位置插入新元素,最后将新数组给原数组变量[^2]。 ```javascript let arr = [1, 2, 4, 5]; let index = 2; let num = 3; let tempArray = new Array(arr.length + 1); for (let i = 0; i < index; i++) { tempArray[i] = arr[i]; } tempArray[index] = num; for (let i = index; i < arr.length; i++) { tempArray[i + 1] = arr[i]; } arr = tempArray; console.log(arr); // 输出: [1, 2, 3, 4, 5] ``` ### 总结 在JavaScript中,可以根据具体需求选择合适的方法插入元素。`push()` 和 `unshift()` 适用于在数组末尾或开头插入元素,而 `splice()` 则适用于在任意索引位置插入元素。对于有序数组,可以结合查找逻辑使用 `splice()` 实现插入,或者手动创建新数组完成操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值