[数据结构]一般顺序表部分总结
部分顺序表算法的总结。Min/Max顺序表使用下标i记录位置链表使用指针Min/Max来指向对应结点。intMin0;for(inti1;in;i){if(data[i]data[Min])Mini;}//顺序表Node*MinL;Node*pL;while(p){if(p-dataMin-data)Minp;pp-next;}//链表逆置(a-a-1)逆置即指将链表元素实现倒序。即a1 a2 … anan an-1 …a2 a1。voidreverse(ElemType data[],intlow,intn){for(intilow;ilown/2;i){swap(data[i],data[2*lown-i-1]);//如low0时a0与an-1,a1与an-2}}//扫描一遍线性表即可因此T(n)O(n),S(n)O(n)使用逆置可实现表内元素平移m位的效果。即a1 a2 …am am1 … an am1 am2 … an a1 a2 …am。a b c d e平移2位即得c d e a b思路即求abba;ab-a-1b-1-ba步骤1逆序a1 a2 … amam am-1 … a2 a1;2逆序am1 am2 … anan an-1 … am1;3此时线性表变为am am-1 … a2 a1 an an-1 … am1再次逆序线性表即可。a b c d eb a e d cc d e a bvoidreverse_m(ElemType data,intn,intm){//向左平移m位reverse(data,0,p);reverse(data,p1,n-p);reverse(data,0,n);}//时空复杂度同reverse函数删值X遍历一遍线性表删去符合要求的结点。所有值为X的结点需要记录线性表中值不为X或为X的结点个数从而确定删除后所在位置。//记录不为X的个数voiddelete_X(ElemType data[],intn){intcount0;for(inti0;in;i){if(data[i]!X){count;data[count]data[i];}}ncount;}//记录为X的个数voiddelete_X(ElemType data[],intn){intcount0;for(inti0;in;i){if(data[i]X)count;elsedata[i-count]data[i];//值不为X的结点需前移count位}n-count;}删区间[s,t]上的值若非有序表则逐个遍历进行判断。若是有序表则可减少遍历的次数。booldelete_StoT(ElemType data[],intn,ElemType s,ElemType t){inti,j;if(st||n0)//输入非法或线性表为空returnfalse;for(i0;indata[i]s;i);//寻找第一个值大于等于s的结点位置if(in)returnfalse;for(ji;jndata[j]t;j);//寻找第一个值大于t的结点位置若无则为nfor(jn;i,j){//j位置后的结点平移至i位置之后data[i]data[j];}ni;//i为表长returntrue;}1 3 4 5 6 7 8 删去[3,6]的值则i1,j51 7 8删去重复值(有序表)将每一结点视为待插入点与已插入表表尾进行比较若相同则跳过若不相同插入至表尾。voiddelete_same(ElemType data,intn){for(inti1,j0;in;i){//i为待插入结点下标j为已插入表表尾下标if(data[i]!data[j])data[j]data[i];//插入}nj1;}1 2 2 3 4 5 5 6 1 2 3 4 5 6j0 1 1 2 3 4 4 5i_ 1 2 3 4 5 6 7Merge()将两个有序表合并为一个有序表。步骤i,j均从表头出发若data1[i]data2[j],将data1[i]放入新的表尾i //假设单调递增递减同理否则将data2[j]放入新的表尾j其中一表为空时将剩余非空表直接插入值新表中。intMerge(ElemType data1[],ElemType data2[],intn1,intn2,ElemTypedata[]){inti,j,k;for(i0,j0,k0;in1jn2;){if(data1[i]data2[j])data[k]data1[i];elsedata[k]data2[j];}while(in1)data[k]data1[i];while(jn2)data[k]data2[j];return0;}若要求合并表无重复元素可先将表1表2删去重复值之后合并时若值相等取其一入表之后均后移一位。找主元素主元素即为重复数大于n/2的结点数据。一种较为高效的算法思想可总结为用Main记录当前元素相对数count记录Main的重复数若下一元素相同则count反之count–若count0则选择下一元素作为新的记录结点。遍历一遍后还需重新扫描一次线性表得到绝对个数count。此时时间负责度为O(n)且空间复杂度为O(1)。ElemTypeMain_data(ElemType data[].intn){intcount0;ElemType Maindata[0];for(inti1;in;i){if(count!0{if(data[i]Main)count;elsecount--;}else{count1;Maindata[i];}}count0;for(inti0;in;i){if(Data[i]Main)count;}}if(countn/2)returnMain;elsereturn-1;}两个有序表的中位数(等长)如S1(11,13,15,17,19),S2(2,4,6,8,20),则中位数为11(向上取整。思路比较两个序列的中位数若相同则返回若不同较大的序列保留较小部分序列较小的序列保留较大部分序列重新比较直到序列个数均为1此时较小值即为所求。要求删去长度相等。156 11 13 15 6 8 20138 11 13 8 201310 11 201120 则返回11ElemTypeMidAandB(ElemType A[],ElemType B[],intn1,intn2){intlow1low20,high1high2n-1;while(low1high1||lowhigh2){intmid1(low1high1)/2,mid2(low2high2)/2;if(A[mid1]B[mid2])returnA[mid1];elseif(A[mid1]B[mid2]){if(low1high1)%20){high1mid1;low2mid2;}else{high1mid1 low2mid21;}}else{if(low1high1)%20){low1mid1;high2mid2;}else{low1mid11;high2mid2;}}}returnA[low1]B[low2]?B[low2]:A[low1];}

相关新闻

Pearcleaner:macOS终极清理解决方案,开源工具彻底释放磁盘空间

Pearcleaner:macOS终极清理解决方案,开源工具彻底释放磁盘空间

Pearcleaner:macOS终极清理解决方案,开源工具彻底释放磁盘空间 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner macOS系统清理一直是M…

2026/7/28 18:15:08 阅读更多 →
智能手机美国FCCID证书怎么申请

智能手机美国FCCID证书怎么申请

智能手机带 2G/3G/4G/5G(蜂窝)+ 蓝牙 + 2.4G/5G/6G Wi-Fi + GPS,去美国必须做 FCC ID(Certification),由 TCB 审核发证,不能走 SDoC。下面是 2026 年现行规则下的完整申请链路,和智能手表流程同源但射频面更宽(多了 Part 22/24/27 蜂窝段 + HAC 趋势要求)。 一、先锁…

2026/7/28 18:15:08 阅读更多 →
牛客剑指Offer——替换空格

牛客剑指Offer——替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。方法1public class Solution {public String replaceSpace(StringBuffer str) {return str.toString().replac…

2026/7/28 18:14:08 阅读更多 →

最新新闻

Taotoken实测:128K上下文塞满后,GPT-5.4竟比Claude更早开始胡说?长会话记忆分层方案

Taotoken实测:128K上下文塞满后,GPT-5.4竟比Claude更早开始胡说?长会话记忆分层方案

长会话AI记忆失效危机:2026年工程应对指南 上周在Taotoken平台调试合同审查Agent时,我们观察到一个令人不安的现象:当对话轮次超过40轮后,GPT-5.4开始将甲方公司名称"震旦"错写成"晨旦",而号称支…

2026/7/28 18:25:11 阅读更多 →
PHP:数组函数(2)

PHP:数组函数(2)

1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使用回调函数处理数组的函数 4.数组的排序函数 5.拆分、合并、分解与结合函数 6.数组与数据结构 7.其他有用的数组处理函数 数组的键值操作函数: 1.array_values(); 获取数组中的值.** <?php $arrarray(item1>linux,i…

2026/7/28 18:25:11 阅读更多 →
折扣卡分销小程序开发,高峰期核销接口限流优化思路

折扣卡分销小程序开发,高峰期核销接口限流优化思路

折扣卡分销小程序开发&#xff0c;高峰期核销接口限流优化思路折扣卡分销小程序依托社交裂变、社群推广、短视频引流实现用户快速增长&#xff0c;在节假日优惠、平台秒杀活动、渠道集中推广时段&#xff0c;会瞬间涌入大量卡券核销请求。核销接口作为核心高频接口&#xff0c;…

2026/7/28 18:25:11 阅读更多 →
结合使用环境与可靠性标准,制定采购Tg等级判定标准

结合使用环境与可靠性标准,制定采购Tg等级判定标准

一、常温室内环境&#xff1a;Tg 采购选型的基准阈值设备长期运行环境稳定在 0℃~60℃&#xff0c;机箱通风良好、无密闭积热&#xff0c;以普通消费电子、室内控制模块、桌面外设电路板为主。该工况下 PCB 本体稳态工作温度不会超过 70℃&#xff0c;热积累效应微弱&#xff0…

2026/7/28 18:25:11 阅读更多 →
Tg数值匹配PCB层数、板厚,采购下单的硬性匹配规范

Tg数值匹配PCB层数、板厚,采购下单的硬性匹配规范

一、双面板与多层板对 Tg 耐受度的需求差异双层 PCB 结构仅上下两层铜箔&#xff0c;介质层厚度均匀&#xff0c;压合工序简单&#xff0c;热应力释放空间充足&#xff0c;Tg 选型容错率较高&#xff0c;无铅工艺选用 130~150℃板材基本可稳定生产。四层及以上多层板由多张芯板…

2026/7/28 18:25:11 阅读更多 →
炉石传说佣兵战记:5分钟掌握终极自动化脚本使用指南

炉石传说佣兵战记:5分钟掌握终极自动化脚本使用指南

炉石传说佣兵战记&#xff1a;5分钟掌握终极自动化脚本使用指南 【免费下载链接】lushi_script This script is to save your time from Mercenaries mode of Hearthstone 项目地址: https://gitcode.com/gh_mirrors/lu/lushi_script 还在为炉石传说佣兵战记模式的重复操…

2026/7/28 18:24:11 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿&#xff01;3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑&#xff1a;把几百页的财报、法规、技术手册扔给向量库&#xff0c;问一个具体问题&#xff0c;搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了&#xff0c;要么藏在几十条结果的最下面。语义相似≠真正相关&#xff0c;这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营&#xff0c;从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候&#xff0c;每天刷半小时抖音&#xff0c;手动把爆款视频的口播敲进备忘录&#xff0c;一条2分钟的视频得花十来分钟&#xff0c;碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻