首页 > 编程语言 >已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)(笔试题)

已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)(笔试题)

时间:2024-04-22 19:45:55浏览次数:18  
标签:顺序 int 递增 元素 插入 manager 有序

已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)(笔试题)

/******************************************************
 *
 *  name      : SeqAdd
 *	function  :  (笔试题)已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元
 *               素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。
 *  argument
 *               @x :需要插入顺序表中的元素
 *               @manager :顺序表的地址
 *
 *  retval    : 返回值为结构体的地址
 *  author    : Dazz
 *  date      : 2024/4/18
 *  note      : None
 *
 * *******************************************************/
bool SeqAdd(int x, SeqList_t *manager)
{
    // 错误处理
    if (NULL == manager)
    {
        printf("请输入有效地址");
        return false;
    }

    // temp用来记录插入顺序表中的位置
    int temp = -1;

    // 遍历顺序表,找到插入顺便表中的位置
    // Last为顺序表中有效元素的下标
    for (int i = 0; i <= Last; i++)
    {
        if (x < manager[i])
            temp = i;
        break;
    }

    // 如果temp中的值仍是-1,则x比顺序表中的任一元素都要大,直接插入到顺序表的尾部
    if (-1 == temp)
    {
        manager[Last] = x;
        return true;
    }

    // temp中的值不为-1的情况,即x不比顺序表中的最大的元素要大
    // 用循环将顺序表中下标为temp后(包括temp)的元素整体往后挪
    for (int i = Last; i >= temp; i--)
    {
        manager[i + 1] = manager[i];
    }

    manager[temp] = x;
    return true;
}

标签:顺序,int,递增,元素,插入,manager,有序
From: https://www.cnblogs.com/Dazz24/p/18151356

相关文章

  • 有序表插入新元素
    include<stdio.h>include<stdlib.h>include<string.h>int*sort(int*L,intj,intsize){intL2=(int)malloc(size*4+4);intik=0;for(inti=0;i<size-1;i++){if(L[i]<j){L2[i]=L[i];}else{ik=i;break;}}L2[ik-1]=j......
  • 海量数据频繁插入和查询解决方案
    一、关系型数据库(RDBMS)使用像MySQL、PostgreSQL或者Oracle这样的关系型数据库。它们具有成熟的事务处理、ACID(原子性、一致性、隔离性、持久性)特性和SQL查询语言。但是,在面对海量数据时,可能会遇到性能瓶颈。二、NoSQL数据库NoSQL数据库,如MongoDB、Cassandra、Redis等,专为大规模......
  • 兰顿蚂蚁:从无序到有序的伟大征程
    1.问题在一个1000*1000格子的棋盘上,有一只蚂蚁(ant),蚂蚁的爬行规则是:(1)如果蚂蚁所在的棋盘是白色的,则蚂蚁将所在格子设置为黑色,并向右边爬行一个格子。(2)如果蚂蚁所在的棋盘是黑色的,则蚂蚁将所在格子设置为白色,并向左边爬行一个格子。问:请显示蚂蚁爬行10000次后,棋盘的样子。2.思......
  • Mysql数据库插入Emoji,字符集设置utf8mb4
    字符集和校对规则字符集(CHARACTERSET)为字母和符号的集合。例如latin1(MySQL默认),utf8和utf8mb4等等…不同字符集的默认校对规则和1个字符最大支持的字节长度可能不一样。校对规则(COLLATE)为规定字符如何比较的指令。比如当我们SQL语句后面需要根据某个字段orde......
  • vscode使用PasteImage插入图片
    vscode使用PasteImage插入图片需求在vscode中写Markdown文件,经常需要插入图片,使用插件PasteImage进行简单配置后,就可以方便插入图片并自动存放到相应路径的文件夹中安装及配置安装从扩展商店搜索PasteImage并安装即可配置vscode设置中搜索PasteImage,找到PasteImage:......
  • 使用ffmpeg 插入片头片尾(指定时长)
    功能需求:1、插入的片头可以时图片或视频。图片格式暂时未jpg视频格式为mp4。可能存在的问题:1)、图片需要先转换成ts文件:增加视频和音频。2)、mp4文件可能无声音。3)、片头片尾的参数与录制视频的参数不匹配:导致连接过程可能会黑屏。  首先参数统一1、如何加快编码h264......
  • 29天【代码随想录算法训练营34期】第七章 回溯算法part05 (491.递增子序列 * 46.全排
    491.递增子序列如果在最前面加一个uset=set(),这个就是给这一层一个usedset,很好用,不错classSolution:deffindSubsequences(self,nums:List[int])->List[List[int]]:result=[]self.backtracking(nums,[],result,0)returnresult......
  • 第三十一节:批量插入框架[Zack.EFCore.Batch]和EFCore8.x自带的批量删除、更新
    一. 说明1.目标 这里主要测试EFCore8.x版本提供的批量删除和批量更新;以及老杨的框架[Zack.EFCore.Batch] 以SQLServer为载体进行测试。2.准备(1).需要的程序集  必须的程序集:  Microsoft.EntityFrameworkCore.Tools  EF自身的程序集:Microsoft.......
  • 达梦插入数据时提示字段为空的错误
    近期项目中碰到一条insert语句执行时提示null的报错,而检查该字段没有设置非空约束。本地模拟相关问题,AAA表结构如下:插入一条数据时,提示majorisnull的错误,而该字段定义是可以为空的 复制和这个表类型一样的表,验证是否有问题先执行如下参数,复制是包含表结构,包括主键、......
  • VS中设置版本号自动递增
    软件版本号主要标识了软件的版本,通过其可以了解软件、类库文件的当前版本,使得软件版本控制有所依据。我们就Windows系统和.NETFramework的编号规则来看,软件版本号的定义结构一般是这样:主版本号.子版本号.编译版本号.修正版本号我们也可以在项目属性上可以看到相关设置的界面,对......