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

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

时间:2024-04-22 21:26:02浏览次数:20  
标签:顺序 int 递增 元素 插入 有序 data

/********************************************************************************************************
*
*	file name:	Zqh_splist_4.22.1.c
* 	author	 :	[email protected]
* 	date	 :	2024/04/22
* 	function :	已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为t型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。
*	note	 :	考研题
*	
*  Copyright (c)  2023-2025   [email protected]    All right Reserved
* ******************************************************************************************************/




#define MAX_SIZE 100

// 定义顺序表结构体
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

//优化前
//递增排序      
void  SeqList_Insert(SeqList *L,int x)
{
	int temp = -1; //记录待插入元素的下标

	//遍历顺序表,找到插入位置,比较元素
	for (int i = 0; i <= last; ++i)
	{
		if (x < L[i])
		{
			temp = i;
			break;
		}
	}

	if( -1 == temp)
	{
		L[last+1] = x;
		return;
	}

	//把待插入位置的后继元素向后移动
	for (int i = last; i >= temp; i--)
	{
		L[i+1] = L[i];
	}

	L[temp] = x;
}



// 优化后
// 在递增有序的顺序表中插入元素 x
void SeqList_Insert(SeqList *L, int x) {
    int i, j;
    for (i = 0; i < L->length; i++) {
        if (L->data[i] >= x) {
            break;
        }
    }
    for (j = L->length; j > i; j--) {
        L->data[j] = L->data[j - 1];
    }
    L->data[i] = x;
    L->length++;
}

//在算法检测时,需要找特殊的情况,列如:0  表头  表尾  边界值

标签:顺序,int,递增,元素,插入,有序,data
From: https://www.cnblogs.com/kencszqh/p/18151559

相关文章

  • 已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该
    已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。/********************************************************************* 函数名称: SeqListInsert* 函数功能:一个顺序表L,其中的元素......
  • 排序3-插入排序
    排序3-插入排序插入排序把排序对象分成已排序和未排序两个部分,每次选取未排序部分的首元素,将它插入已排序部分的合适部分插入排序(正序)//插入排序voidinsertSort(intarr[],intlength){intj;for(inti=1;i<length;i++){//i是无序部分首元素的下标......
  • 已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持
    已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)(笔试题)/********************************************************name:SeqAdd* function:(笔试题)已知一个顺序表L,其中的元......
  • 有序表插入新元素
    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......