当前位置: 首页 > news >正文

26数据结构-顺序表

📌有序顺序表的合并

#define MAX_SIZE 20
struct SeqList
{int data[MAX_SIZE];int length;
};
void mergeArray(SeqList &L1,SeqList &L2,SeqList &L)
{int i=0,j =0;while(i<L1.length && j<L2.length){if(L1.data[i]<L2.data[j])L.data[length++] = L1.length[i++];elseL.data[length++] = L2.length[j++];}while(i<L1.length){L.data[length++] = L1.length[i++];}while(i<L2.length){L.data[length++] = L2.length[j++];}
}

📌删除有序顺序表重复元素

void deleteRepeatELement(SeqList &L)
{int slow =0,fast=1;while(fast<L.length){if( L.data[slow] == L.data[fast]){fast++;}else if( L.data[slow] != L.data[fast]){L.data[++slow] =L.data[fast++];}}L.length =slow+1;
}

通过快慢指针的追赶,将不重复的元素 "前移",覆盖掉重复元素,最终实现原地去重,时间复杂度为 O (n),空间复杂度为 O (1)。

📌编写算法,对n个关键字取整数值的记录序列进⾏整理,以使得所有关键字为负数的记录排在关键字为⾮负数的记录之前。

void reOrderArray(SeqList &L)
{int i=0,j=0;while(j<L.length){if(L.data[j]<0){if(i!=j){int tmp = L.data[i];L.data[i] = L.data[j];L.data[j] = tmp;}i++;j++;}elsej++;}
}

📌设有⼀组初始记录关键字序列(K1,K2,…,Kn),要求设计⼀个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均⼩于Ki,右半部分的每个关键字均⼤于Ki。

//⽅法⼀:双指针
void spliceArrayother(SeqList &L)
{int left = 0;           //左半部分的索引。int right = L.length -1; //右半部分的索引while( left <= right ){while(L.data[left] < key)left ++;while(L.data[right] > key)right --;//如果left <=right 交换if(left <=right){int tmp = L.data[left];L.data[left] =L.data[right];L.data[right] = tmp;left ++;right--;}}
}
//⽅法⼆:类似快排
void spliceArray(SeqList &L)
{int key;int i = 0,j=0;while(j < L.length){if(L.data[j]> key){if(i != j){int tmp = L.data[i];L.data[i] = L.data[j];L.data[j] = tmp;}i++;j++;}j++;}
}
http://www.dtcms.com/a/309783.html

相关文章:

  • SpringMVC RESTful 核心要点
  • Excel数据转化为Xmind思维导图全流程(含Word转化格式),实用
  • hadoop.yarn 带时间的LRU 延迟删除
  • 如何在 Mac OS 上安装 Cursor
  • 2025 腾讯广告算法大赛 Baseline 项目解析
  • Python - 数据分析三剑客之Matplotlib
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘altair’问题
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
  • 从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门
  • AI 重塑软件产业:从技术革命到生态重构
  • 超聚变:智能体时代,AI原生重构城企数智化基因
  • 技术信任革命:区块链重构信用机制全解析
  • 国内用户如何用手机进行YouTube直播?
  • 【CDH × Docker】一次测试部署,N 次复用的环境镜像方案
  • 9.1无法恢复的错误与 panic!
  • 基于Ascend CANN的FFmpeg与OpenCV编译指南
  • 观测云基于 ToB/ToC 业务可观测最佳实践
  • 蚂蚁开源团队发布的2025大模型开源开发生态发展情况速览
  • AI+向量化
  • 在Idea中,配置maven
  • Web安全学习步骤
  • R 语言文件读写、批量读取与图片保存实用代码汇总
  • 使用BART模型和T5模型实现文本改写
  • k8s部署mysql
  • Web学习:SQL注入之联合查询注入
  • 逻辑回归建模核心知识点梳理:原理、假设、评估指标与实战建议
  • Codeforces Round 1040 (Div. 2) E1 - E3 交互题 | 思维
  • go语言实现协程池
  • leetcode 118. 杨辉三角 简单
  • django操作orm整套