数据结构每日一题day3(顺序表)★★★★★

server/2025/3/31 10:59:46/

题目描述:顺序表L的元素递增有序排列,设计一个算法在插入元素x后保持该顺序表仍然递增有序排列,插入成功后返回插入元素所在位置,不成功返回-1

算法思想:在递增有序的顺序表中插入元素 x 并保持有序性,步骤如下:

合法性检查:若顺序表已满(length == MAXSIZE)或指针为空,插入失败,返回 -1。

查找插入位置:遍历顺序表,找到第一个大于等于 x 的元素的位置 i;若所有元素均小于 x,则插入到表尾(i = length)。

元素后移:从表尾开始,将位置 i 及之后的元素全部后移一位,腾出插入位置。

插入元素:将 x 存入位置 i,表长加 1,返回插入位置 i。

复杂度分析:时间复杂度O(n)空间复杂度O(1)

代码实现:

#include <stdbool.h>
#define MAXSIZE 100  // 假设顺序表最大容量typedef struct {int data[MAXSIZE];int length;
} SeqList;int InsertOrder(SeqList *L, int x) {// 检查表是否已满或指针为空if (L == NULL || L->length >= MAXSIZE) {return -1;}int i;// 找到第一个大于等于x的元素的位置for (i = 0; i < L->length; i++) {if (L->data[i] >= x) {break;}}// 若所有元素均小于x,i此时等于length// 从后向前移动元素,腾出插入位置for (int j = L->length; j > i; j--) {L->data[j] = L->data[j - 1];}L->data[i] = x;  // 插入xL->length++;     // 表长增加return i;        // 返回插入位置
}


http://www.ppmy.cn/server/179892.html

相关文章

如何扩展 Linux 中 ext4 文件系统的大小

一、问题出现的背景 我们通过docker部署的程序已经吃满了所挂载的磁盘&#xff0c;导致里面的服务由于磁盘空间的不足而不能正常提供服务。此时我们首先进行了物理扩容&#xff0c;直接在vdb上扩容到1000G。然后通过相关的命令查看磁盘使用情况&#xff1a; rootecs-3d7e-0306…

docker-dockerfile书写

前言 ARG 功能 &#xffee; ARG指令类似ENV&#xff0c;定义了一个变量&#xff1b;区别于ENV&#xff1a;用户可以在构建时 docker build --build-arg 进行对变量的修改&#xff1b;ENV不可以&#xff1b; &#xffee; 如果用户指定了未在Dockerfile中定义的构建参数&…

【面试题】利用Promise实现Websocket阻塞式await wsRequest() 请求

逻辑实现过程 1. 目标与基础设计 目标&#xff1a;实现一个类似 HTTP 请求的阻塞式调用接口&#xff08;如 await wsRequest(...)&#xff09;&#xff0c;让开发者无需手动处理 WebSocket 的事件回调&#xff0c;而是通过 Promise 和 async/await 获得同步体验。 基础设计&a…

7种数据结构

7种数据结构 顺序表sqlite.hseqlite.c 单链表linklist.clinklist.h 双链表doulinklist.cdoulinklist.h 链式栈linkstack.clinkstack.h 队列SeqQueue.cSeqQueue.h 树tree.c 哈希表hash.c 顺序表 sqlite.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ typedef struct person…

【Arm+Qt+Opencv】基于人脸识别考勤系统实战

1.编译时问题汇总 windows下编译opencv-4.5.4 opencv-4.5.4编译 问题1&#xff1a;配套使用opencv-4.5.4,opencv_contrib-4.5.4,cmake3.22.3问题会少一点 问题2&#xff1a;在windows下哪里执行该命令 解决&#xff1a; 问题3&#xff1a;在对应cmake中搜索不到要修改的配置…

EMS小车技术特点与优势:高效灵活的自动化输送解决方案

北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统&#xff0c;通过电力驱动实现物料的高效搬运和输送&#xff0c;具有高效灵活、节能环保、多功能集成、行业适配性强等特性&#xff0c;广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…

‌UWB信号特征:纳秒级窄脉冲如何实现高精度定位?——以品铂科技为例

随着物联网和智能化的快速发展&#xff0c;精准定位技术成为各行业数字化转型的关键支撑。超宽带&#xff08;UWB&#xff09;技术以其‌纳秒级窄脉冲信号‌和‌厘米级高精度定位能力‌&#xff0c;成为室内定位领域的佼佼者。作为一家专业从事UWB高精度定位系统研发与生产的厂…

paddle ocr

paddle ocr paddle ocr笔记准备工作referenceto onnx文本检测文本检测文字识别 paddle ocr笔记 准备工作 下载字典ppocr_keys_v1.txt&#xff0c;下标从1开始模型转换 reference paddlepaddle to onnx 下载模型&#xff0c;或者直接使用python跑一下并且把本地模型拿过来…