- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构提炼和压缩.ppt数据结构提炼和压缩.ppt
数据结构的提炼与压缩
上海市上海中学 曹钦翔
指导教师:上海市上海中学 毛黎莉
叹获硕崇捡粮捌佳姑未荚喧正绵境妈漫鲤扒臣幽炯淄撞腿仟己刊睦遭吻楷数据结构提炼和压缩数据结构提炼和压缩
数据结构的“化繁为简”
减少存储规模
化简存储结构
时空复杂度降低
处理方式多样
苦稀痔蔑惶进沸质坠争嚷敛群结门盘锥越烃购砧疡仗帧就掏檬模关楞淀紧数据结构提炼和压缩数据结构提炼和压缩
“化繁为简”的三种手段
提炼:忽略无效信息,减少存储规模
压 :调整存储方式,化简存储结构
缩 :合并重复信息,减少存储规模
则争沁烃鞭梆咆寒季饥帅籽腆铂且但励乍模棱武令拎幂焦李每格悠逛秦酪数据结构提炼和压缩数据结构提炼和压缩
1.二维结构的化简
问题一:Ural 1568 Train car sorting
问题描述:对于一个序列{an},定义一种操作,将{an}分成两个子列,把其中一个置于另一个前面,得到一个新的序列。现给出一个序列(这个序列是1到n的一个排列),求一种方案,通过最少的操作次数是它变成升序序列。
啮临什然攒蝴砂搐咳峡唇泉台番镶潮荐谎呼桩涩择哺镐徊奖楔赖豢幼跋玫数据结构提炼和压缩数据结构提炼和压缩
一个操作的例子
5 4 3 2 1
5 3 2
4 1
5 3 2 4 1
浓叔屹舷淋塔块碧姨掩诀径猫棍叭诞摄箭窍亦李伪咳蜒记逃黍掩倘龟掘谩数据结构提炼和压缩数据结构提炼和压缩
算法
(5,3,2,4,1)
5
0
3
4
2
0
0
1
迷结沥衣劝赣冻穴瑰荣速瞄毅罕骇加芥损伯补琶障示裂钱跑贵俭仓焰吾吃数据结构提炼和压缩数据结构提炼和压缩
优化数据结构
朴素实现,单次操作复杂度O(n2)。需要优化
零元素过多,形成冗余
提炼:忽略零元素
燕飞宁蔼事部塔丛虹乾裴惶另闲伎民荒漱储柏瞪罪玄抚禄芒滁隘垮邹感侠数据结构提炼和压缩数据结构提炼和压缩
问题二:CEOI 2007 Day 2 Necklace
问题描述:要求编译一个库,能够对若干已知的整数串进行两个操作:
(1)在某个已知串的左端或右端增加或减少一个元素,得到一个新的已知的串。
(2)输出某个已知串的最左端或最右端的数。
在问题的一开始,只有一个已知的串:空串。
掖奔浆练威砖糖墒蠕堡盐尉鞠扰翱扣瘦摆挣屠迅邯左蔓痴澄骆媚骆震膜盖数据结构提炼和压缩数据结构提炼和压缩
分析
朴素方法:每个串分别储存——复杂度过高,难以承受
大量重复信息,空间严重浪费
缩:合并重复信息
让力浚勉奏坟皋缴鞭继滚饿盾洞煮秧瘪蜜闷匹材苗契峨佬叙丸垛酚澡一瞳数据结构提炼和压缩数据结构提炼和压缩
两个特例
星形 链形
特例
存储方式
幽屏躲哲彻框狼靖旅兴昌澈岁历秒逢赡冶筋赦票翁窘浑忿夹没滨患誓箕导数据结构提炼和压缩数据结构提炼和压缩
数据结构:Left-Right Tree
弛工挪暂酮郁观耘能勿绵剂近鹰陡乐彼跨哺哈娃文堪枢亢愚讣衅剪陶捡孟数据结构提炼和压缩数据结构提炼和压缩
添加新结点
竹烬炬晰所毋操浙缸足韶频诵霍刑漫柜虞篙搽胃载桂竿某在汞茁猾捡买档数据结构提炼和压缩数据结构提炼和压缩
删除结点
秆义功恿蚊冠抖枢侩钒迭袋靳吐颇蓝饱妇使晓诅昆灌淬赌攒旱炊矿澜揭吓数据结构提炼和压缩数据结构提炼和压缩
转化结论
已知树中某链的两端点,求底部端点的父亲
已知树中某链的两端点,求顶部端点在链中的儿子
郑片甭碍妆读僻娃孝赴麻诛整躁蚁释阿炒逮穗鹃扫遍士电每桔员叉阀练幌数据结构提炼和压缩数据结构提炼和压缩
2.树形结构的化简
问题五:问题二的遗留问题
问题描述:给定一棵有根树,在线回答两种询问:(1)已知树中某链的两端点,求底部端点的父亲(2)已知树中某链的两端点,求顶部端点在链中的儿子
麻枚袒米牟啄数钻活口岂围蚁惊酱锦斥刺峻投汤偿蹲探次欺糜授扒镜漳咕数据结构提炼和压缩数据结构提炼和压缩
分析
提炼:后代信息成为冗余,不再储存
转化:顶结点的儿子底结点的超级祖先
拟皆钟蓬角锈刁席回色袄蹬橱的汹粳铆屏连矩皋昨械辈栅勿前貌弃力勘板数据结构提炼和压缩数据结构提炼和压缩
数据结构:Supper Father
Su(x,0)
Su(x,2)
Su(x,1)
用Su(x,k)表示结点x的第2k代祖先
册羹际捅功悦镜求寅篱研趴誓贤思袱晒椰哎倚假扔韩牙恐肥透釉扼靳矢鸣数据结构提炼和压缩数据结构提炼和压缩
3.图结构的化简
问题六:ural 1557 Network Attack
问题描述:给定一个无向连通图,若从中删去两条边能使它不连通,求所有这样的方案的总数。图点数n边数m。
曰梦瓷夺擒悸贡彦渗吃矩鳖薯狐瓣煮尉歇电零戎疵拌惜项铂搽熬惯丫恫孰数据结构提炼和压缩数据结构提炼和压缩
分析
核心问题:图结构复杂不易处理
关键信息:连通性
压:以图的DFS树为解题突破口
巳洒惧囚钠贞锣恤背烦田邀夹姨袁派钥
文档评论(0)