插入数字

本文介绍了一种在已排序数组中插入新数并保持数组排序的方法。通过使用Java的Arrays类,实现数组的动态扩容与排序,确保了插入操作后的数组仍保持有序状态。

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的 数,依次后移一个位置。

 

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

public class program30 {
    public static void main(String args[]){
        /*
        题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
        程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,
        插入后此元素之后的数,依次后移一个位置。
         */
        int a[] = new int[] {0,4,20,36};
        Scanner input = new Scanner(System.in);
        System.out.print("请输入插入的数字:");
        int n = input.nextInt();
        a = Arrays.copyOf(a,a.length+1);//扩充数组
        a[a.length-1] = n;//添加的数字
        Arrays.sort(a);//对数组进行排序
        for (int i = 0;i < a.length;i++){
            System.out.print(a[i]+" ");//输出
        }
    }
}

 

以下是几种不同编程语言中数组插入数字的方法: #### C语言方法 在C语言里,可通过循环将插入位置之后的元素依次后移,再将新数字插入指定位置。示例代码如下: ```c #include <stdio.h> int main() { int a[10] = {1, 2, 3, 4, 5}; int i, n, m; // 输出插入前的数组 printf("输出前的数组:\n"); for (i = 0; i < 10; i++) { printf("%d ", a[i]); } printf("\n"); // 输入插入位置插入数字 scanf("%d %d", &n, &m); // 输出插入后的数组 printf("输出后的数组:\n"); for (i = 9; i > n; i--) { a[i] = a[i - 1]; } a[n] = m; for (i = 0; i < 10; i++) { printf("%d ", a[i]); } return 0; } ``` 上述代码先输出原数组,接着接收用户输入的插入位置数字,之后将插入位置之后的元素后移,最后把新数字插入指定位置并输出新数组[^1]。 #### PHP方法 在PHP中,若要在数字索引的数组开头插入元素,可使用`array_unshift`函数。示例如下: ```php $a = array(1, 2, 3, 4); array_unshift($a, 5); print_r($a); ``` 此代码在数组`$a`开头插入数字5,然后打印插入后的数组[^2]。 #### Java方法 在Java里,可借助集合来实现数组插入数字,先把数组转成集合,添加新元素后再排序。示例代码如下: ```java import java.util.ArrayList; import java.util.Collections; import java.util.List; public class InsertNumber { public static void main(String[] args) { int[] intArr = {1, 2, 3, 4}; int insertNum = 5; Insert(intArr, insertNum); } private static void Insert(int[] intArr, int insertNum) { // 将数组转成集合 List<Integer> list = new ArrayList<Integer>(); for (int i : intArr) { list.add(i); } // 添加元素 list.add(insertNum); // 排序集合 Collections.sort(list); System.out.println(list); } } ``` 该代码先把数组转成`ArrayList`,添加新数字后对集合排序,最后输出排序后的集合[^4]。 #### JavaScript方法 在JavaScript编程中,有线性搜索二分查找两种方法可在有序数组中插入数字,以保持数组有序。以下是线性搜索的示例代码: ```javascript function insertIntoSortedArray(arr, num) { let index = 0; while (index < arr.length && arr[index] < num) { index++; } arr.splice(index, 0, num); return arr; } let sortedArray = [1, 3, 5, 7]; let newArray = insertIntoSortedArray(sortedArray, 4); console.log(newArray); ``` 此代码通过线性搜索找到新数字插入的位置,再用`splice`方法插入数字,最后返回新数组[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值