数据结构入门最新完整版本.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数据结构入门

IntroductiontoDataStructure主讲何宣编剧廖洪舒Hs趣闻?1.第一次校赛2.08年北京喝了红牛,抬头看见天大mm喷鼻血3.UESTC_floyd雅加达259816min重要的事实:当代计算机1s内可做10^7左右次计算配置好的机器可到k*10^7~10^8在这个限制下时间复杂度一定的算法存在能处理的规模上限复杂度 数量级 最大规模O(logN) 10^20 很大O(N^1/2) 10^12 10^14O(N) 10^6 10^7O(NlogN) 10^5 10^6 O(N^2) 1000 2500O(N^3) 100 500O(N^4) 50 50O(2^N) 20 20O(3^N) 14 15O(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)数据结构即是研究数据的各种逻辑结构和储存结构,以及在此基础之上对数据的各种操作。今天学什么?栈(Stack)队列(Queue)并查集(Disjoint-set)二叉堆(BinaryHeap)平衡二叉搜索树(Self-balancingBinarySearchTree)线段树(SegmentTree)树状数组(BinaryIndexedTree)外特性:后进先出(LIFO)交卷子逻辑结构:只在一端操作的线性表数组实现:元素stack[maxn];栈顶指针top;入栈(push):stack[top++]=element;出栈(pop):element=stack[--top];空栈条件:top==0栈(Stack)PushPoptopSTL(StandardTemplateLibrary)#includestackusingnamespacestd;stackints;intx=s.top();s.push(x);s.pop();s.empty();s.size();栈的应用保护现场(系统栈)括号匹配表达式求值深度优先搜索(Depth-firstSearch)栈(Stack)外特性:先进先出(FIFO)食堂排队吸管里的饮料数组实现:元素queue[maxn],队首head,队尾tail入队:queue[tail++]=element;出队:element=queue[head++];队空条件:head=tail问题:出队的元素还在数组里,不是很浪费吗?队列(Queue)poppushheadtailSTL(StandardTemplateLibrary)#includequeueusingnamespacestd;queueintq;intx=q.front();q.push(x);q.pop();q.empty();q.size();队列的应用广度优先搜索(Breadth-firstSearch)……扩展循环队列(CircularQueue)最短路的SPFA算法(ShortestPathFasterAlgorithm) 双端队列(DoubleEndedQueue)例:SlidingWindow对某

文档评论(0)

tan_xie + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档