- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级数据构
数据结构Introduction to Data Structure;/#/contest/show/155;;重要的事实:当代计算机1s内可做10^7左右次计算
配置好的机器可到k*10^7~10^8
在这个限制下时间复杂度一定的算法存在能处理的规模上限
复杂度 数量级 最大规模
O(logN) 10^20 很大
O(N^1/2) 10^12 10^14
O(N) 10^6 10^7
O(NlogN) 10^5 10^6
O(N^2) 1000 2500
O(N^3) 100 500
O(N^4) 50 50
O(2^N) 20 20
O(3^N) 14 15
O(N!) 9 10 ;什么是数据结构?
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
理解:数据结构是一种特别的储存和组织数据的方式,以便于我们更高效地维护和使用数据。
数据结构的含义:数据、关系、操作
例子:一维数组
数据:a[1], a[2], …, a[n]
关系:前驱/后继
操作:随机存取,插入,删除…
程序 = 数据结构 + 算法(数据结构为算法服务???
根据算法对数据的操作要求,设计合适的数据结构
实现同一套操作,可以用多种数据结构
如何降低时空复杂度,又方便实现?
;维护一个电话薄,方便进行插入删除和查找
操作:插入,删除,查找
逻辑结构:无序线性表
储存结构:数组
插入:插到尾部比较方便,O(1)
删除:“合并两半”导致元素移动,最坏O(n)
查找:最坏O(n)
储存结构:链表
插入:插到头部比较方便,O(1)
删除:(找到后)O(1)
查找:最坏O(n)
;维护一个电话薄,方便进行插入删除和查找
操作:插入,删除,查找
逻辑结构:有序线性表
储存结构:数组
插入:最坏O(n)
删除:最坏O(n)
查找:二分查找,最坏O(logn)
储存结构:链表
插入:(找到后)最坏O(1)
删除:(找到后)最坏O(1)
查找:最坏O(n)
;
;
;
;
;
;
;
;STL简介;STL之容器;STL-vector;STL-stack;STL-queue;STL-priority_queue;STL之迭代器;
;优先队列(单调队列);堆排序
堆的定义:n个元素的序列(k1,k2,……kn),当且仅当满足下列关系时,称之为堆;堆排序:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输出堆顶的最小(大)值后,使剩余的n-1个元素重又建成一个堆,则可得到n个元素的次小值;重复执行,得到一个有序序列,这个过程叫~
堆排序需解决的两个问题:
如何由一个无序序列建成一个堆?
如何在输出堆顶元素之后,调整剩余元素,使之成为一个新的堆?
第二个问题解决方法——筛选
方法:输出堆顶元素之后,以堆中最后一个元素替代之;然后将根结点值与左、右子树的根结点值进行比较,并与其中小者进行交换;重复上述操作,直至叶子结点,将得到新的堆,称这个从堆顶至叶子的调整过程为“筛选”;例;49;76;算法描述;例 含8个元素的无序序列(49,38,65,97,76,13,27,50);算法描述;优先队列;public?static?Integer[]?getMaxInSlideWindow(Integer[]?A,?Integer?w)?{??
???if?(A?==?null?||?w?=?0?||?A.length?-?w??0)?return?null;???//?invalid?input??
???Integer[]?B?=?new?Integer[A.length?-?w?+?1];????
????//?auxiliary?queue?that?is?sorted?in?descending?order??
????LinkedListInteger?q?=?new?LinkedListInteger();????
????for?(int?i?=?0;?i??A.length;?i++)?{??
????????int?data?=?A[i];???//?enqueue.?Remove?those?smaller?values??
????????while?(!q.isEmpty()??q.getLast()??data)?{??
????????????q.removeLast();??
????????}??
????????q.add(data);????
????????if?(i??w?-?1)?continue;?????
??????? B[i?-?w?+?1]?=?q.get(0);???//?dequeue.?
????????if?(A[i?-?w?+?1]?==?B[i?-?w?+?1])?{
您可能关注的文档
最近下载
- Unit 1 Fun numbers and letters (说课稿)-2024-2025学年人教PEP版(一起)(2024)英语二年级上册.docx VIP
- 印刷成本核算方式.docx VIP
- 森林防火教学课件.ppt VIP
- 二级保密资格档案目录(24盒)优质材料.doc VIP
- 2025水利工程五大员专业题库(含答案).docx VIP
- 图书馆业务知识培训ppt课件.pptx VIP
- 传感器智能传感器与无线传感器网络技术.pptx VIP
- 中国共产党基层组织选举工作条例学习宣贯ppt课件.pptx VIP
- 游消费者行为学(第二版)孙九霞全套PPT课件.pptx
- 东芝 e-STUDIO 2000AC 2500AC 彩色复印机维修手册(拆卸安装篇).pdf VIP
文档评论(0)