PTA:有序顺序表的插入

news/2025/2/23 16:21:21

请设计一个算法,在有序顺序表L中插入元素x,使得表依然有序,并输出新增元素后的表数据。

例如:
L的元素 1 3 5 7
插入新元素 4
输出 1 3 4 5 7
其中,L的长度不超过1000,当中的元素为非递减排序。

输入格式:

第一行输入L的长度
第二行输入L的元素
第三行输入要插入的元素x的值

输出格式:

输入插入元素后顺序表中各元素的值,值之间用一个空格间隔。

输入样例:

4
1 3 5 7
4

输出样例:

1 3 4 5 7 

代码

#include <stdio.h>

int main() {
    int L[1001]; // 最大容量为1001
    int n, x;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &L[i]);
    }
    scanf("%d", &x);
    
    // 寻找插入位置
    int pos = 0;
    while (pos < n && L[pos] < x) {
        pos++;
    }
    
    // 后移元素
    for (int i = n; i > pos; i--) {
        L[i] = L[i - 1];
    }
    L[pos] = x;
    n++; // 更新表长
    
    // 输出结果
    for (int i = 0; i < n; i++) {
        printf("%d ", L[i]);
    }
    return 0;
}

算法思路

  1. 输入处理:读取顺序表的长度、元素以及待插入元素。
  2. 寻找插入位置:通过遍历顺序表找到第一个大于或等于待插入元素的位置。
  3. 元素后移:将插入位置后的所有元素后移一位,为待插入元素腾出空间。
  4. 插入元素并更新表长:将元素插入到正确位置,并更新顺序表长度。
  5. 输出结果:遍历顺序表并输出所有元素。

复杂度分析

  • 时间复杂度:O(n),最坏情况下需要遍历整个数组并移动所有元素。
  • 空间复杂度:O(1),除了输入输出外,仅使用了常数级别的额外空间。

该算法确保在插入元素后,顺序表依然保持非递减顺序,适用于题目给定的约束条件。


http://www.niftyadmin.cn/n/5863578.html

相关文章

Trae+Qt+MSVC环境配置

Trae Trae是字节跳动基于VSCode推出的AI集成开发环境&#xff08;IDE&#xff09;&#xff0c;是一款专为中文开发者深度定制的智能编程工具。其目标是通过AI技术实现从“Copilot”到“Autopilot”的编程模式演进。 类似这样的IDE比如Windsurf、Cursor&#xff0c;都是基于VS…

pycharm中配置PyQt6详细教程

PyQt6 是 Qt 框架的 Python 绑定库,基于 Qt 6 开发,专为创建跨平台图形用户界面(GUI)应用程序设计。 本章教程,主要记录在pycharm中配置使用PyQt6的流程。 一、安装基础环境 在此之前,你需要提前安装好Python解释器,推荐使用anaconda创建虚拟环境。 conda create -n pyt…

从零开始开发纯血鸿蒙应用之网页浏览

从零开始开发纯血鸿蒙应用 〇、前言一、优化菜单交互1、BuilderFunction.ets2、改造 PageTitleBar 二、网址打开1、方式选择1、使用浏览器打开2、内部打开2.1、声明权限2.2、封装 WebViewPage2.2.1、组件字段2.2.2、aboutToAppear2.2.3、onBackPress2.2.4、标题栏2.2.4、网页内…

IWPA_CEC2005

3种策略改进WPA狼群算法&#xff0c;独家原创&#xff0c;效果非常好&#xff0c;可以直接拿来写毕设或者论文 算法设计、毕业设计、期刊专利&#xff01;感兴趣可以联系我。 &#x1f3c6;代码获取方式1&#xff1a; 私信博主 &#x1f3c6;代码获取方式2 利用同等价值的matl…

http 协议和 https 协议的区别是什么?

互联网各领域资料分享专区(不定期更新): Sheet 正文 HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)的核心区别在于安全性,以下是两者的主要对比: 1. 协议与安全性 HTTP:数据以明文形式传输,易被窃听、篡改或中间人攻击。HTTPS:通过 SSL/TLS 协议对数据进行加密…

静态时序分析:时钟组间的逻辑独立、物理独立和异步的区别

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 当设计中存在多个时钟&#xff08;同步或异步&#xff09;时&#xff0c;该如何使用SDC命令约束设计呢&#xff1f;本文就将对此进行讨论。 逻辑独立 例1 多个时钟完全逻辑独立 图1 逻辑…

ubuntu 源码编译ffmpeg

文章大概就是源码编译 ffmpeg&#xff0c;支持H265 264 编码和gdb 调试 下载ffmpeg 源码 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载依赖库 sudo apt-get install libx264-dev libx265-dev编译选项 ./configure --enable-gpl --enable-libx264 --enable-…

【推荐项目】009-学校宿舍管理系统

系统角色与功能优化整理如下&#xff1a; 系统角色&#xff1a; 学生 宿舍管理员 系统管理员 系统功能&#xff1a; 首页&#xff1a;提供系统概览及快速导航。 用户管理&#xff1a;对用户信息进行增删改查等操作&#xff08;系统管理员专有&#xff09;。 宿舍管理&#x…