首页 > 其他分享 >按排序规律插入数据

按排序规律插入数据

时间:2024-12-20 23:28:08浏览次数:11  
标签:规律 int 元素 个数 插入 数组 排序

Description 

对一组已经排好序的数组,要求输入m个数,将这m个数按照原来的排序规律插入数组中。输出得到的新数组。

Input 

第一行输入一个n,代表已经排好序的元素个数,n不大于20。 第二行,输入n个已经排好序的整数。 第三行输入一个m,代表要插入的元素个数。 第四行输入m个整数,代表要插入的整数。

Output 

输出得到的新数组。

#include <stdio.h>

// 函数用于将新元素插入到已排序数组中,并保持数组有序。
void insertIntoSortedArray(int arr[], int *size, int newElement) {
    // 从数组的最后一个元素开始比较。
    int i = *size - 1;

    // 将所有比新元素大的元素向后移动一位。
    while (i >= 0 && arr[i] > newElement) {
        arr[i + 1] = arr[i];
        i--;
    }
    // 插入新元素到正确的位置。
    arr[i + 1] = newElement;
    // 增加数组大小。
    (*size)++;
}

int main() {
    int n, m; // 分别表示已排序数组和待插入数组的元素个数。
    int sortedArr[100];  // 已排序的数组,假设最大长度为100。
    int newArr[100];     // 待插入的新元素数组,假设最大长度为100。

    // 读取已排序数组的元素个数。
    scanf("%d", &n);
    // 读取已排序数组中的元素。
    for (int i = 0; i < n; i++) {
        scanf("%d", &sortedArr[i]);
    }
    // 读取待插入数组的元素个数。
    scanf("%d", &m);
    // 读取待插入数组中的元素。
    for (int i = 0; i < m; i++) {
        scanf("%d", &newArr[i]);
    }

    // 将新元素逐一插入到已排序数组中。
    for (int i = 0; i < m; i++) {
        insertIntoSortedArray(sortedArr, &n, newArr[i]);
    }

    // 打印最终的已排序数组。
    for (int i = 0; i < n; i++) {
        printf("%d", sortedArr[i]);
        // 如果不是最后一个元素,则打印空格分隔符。
        if (i < n - 1) {
            printf(" ");
        }
    }
    // 换行。
    printf("\n");

    return 0;
}

标签:规律,int,元素,个数,插入,数组,排序
From: https://blog.csdn.net/2402_86997774/article/details/144621877

相关文章

  • 使用Python实现两组数据纵向排序
    使用Python实现两组数据纵向排序 本文详细介绍了如何使用Python实现两组数据的纵向排序,包括开发思想、开发流程和代码示例。通过本文的学习,读者可以掌握如何使用Python的内置函数和第三方库进行排序操作,并能够处理各种边界情况。本文提供的代码示例具有实际应用价值,可以用于......
  • C语言 排序
    时间:2024.12.18一、冒泡排序(BubbleSort)原理比较相邻的元素。如果第一个比第二个大,就交换它们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的......
  • 最优雅的算法——快速排序
    快速排序:探索两种流行的方法快速排序,这个听起来有点技术性的术语,实际上是一个既高效又优雅的算法,它能够将一堆混乱的数据快速整理得井井有条。今天,我们将通过一种轻松愉快的方式,一起揭开快速排序的神秘面纱,并探索两种流行的实现方法。话不多说,开始战斗快速排序的魔法:基......
  • MySQL 数据插入慢
    问题背景使用MybatiPlus批量插入数据,497条数据居然花费了16264毫秒,完全不可接受!  解决方案 核心mybatis-plus批量插入需要添加rewriteBatchedStatements配置mybatis-plus批量插入的性能受事务的影响  方案一MySQLJDBC驱动在默认情况下会忽视executeBatch......
  • 有延迟环节的burst控制中得到响应时间变化规律的仿真分析方法
    在电源芯片的数字控制方法中,经常引入延迟环节。在引入延迟环节后,分析电路响应的方法特别是定量计算会变得比较复杂。本文通过对一种有延迟环节的burst控制方法的分析,提出一种可用于工程实践的方法,那就是通过电路分析,用在静态工作点作瞬态响应仿真的方法得到参数调试方向。本文作......
  • 排序算法
    1.快速排序intPartition(SqListL,intlow,inthigh){L.elem[0]=L.elem[low];intl=low,r=high;while(l<r){while(r>l&&L.elem[r]>=L.elem[0])r--;L.elem[l]=L.elem[r];while(l<r&&L.elem[l]<=L.elem[0])l++;L.elem[r]=L.elem[l];......
  • vector容器/构造函数/赋值操作/容量和大小/插入和删除/数据存储/互换容器/预留空间
    vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将元数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的......
  • 六大排序(一):插入,冒泡,选择排序
    一.插入排序:a)步骤:1.从第一个元素起,并认为已是排好序了的2.选择下一个元素tmp,从已经排好序的元素从后往前扫描3.若大于tmp则往前移动一个,直到小于tmp,并把tmp插入这个元素前面4.若都大于tmp,则插入0的位置5.重复以上步骤,直到全部排序完毕b)例子:对13528479排序1......
  • LeetCode 热题 第35题 搜索插入位置
    LeetCode热题第35题搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。解题:classSolution{public:intsearchInsert(vector<int>&......
  • java 快速排序,原理、算法分析、实现细节、优缺点以及一些实际应用场景
    更多资源推荐:http://sj.ysok.net/jydoraemon提取码:JYAM实用优质资源/教程公众号【纪元A梦】 ###快速排序的详细解析探讨快速排序,包括其工作原理、算法分析、实现细节、优缺点以及一些实际应用场景。####1.基本概念快速排序是一种基于分治法的高效排序算法。其基本思想是选......