-
数据结构:就是指一组数据的存储结构
-
算法:就是操作数据的一组方法
-
数据结构是为算法服务的,算法要作用在特定的数据结构之上
-
随机访问 v.s. 顺序访问
随机访问是说你可以随意访问该数据结构中的任意一个节点,假设该数据结构有10个节点,你可以随意访问第1个到第10个节点。 对于列表而言,如果其存在10个节点,如果你要访问第5个节点,你只能从列表的头或者尾,依次遍历相邻的每一个节点; 对于vector而言,你可以直接利用[]操作符,直接访问[4],不需要遍历其他的节点。 这就是随机访问。 比如first是第一个元素的地址,现在想访问第N个元素。 随机访问:直接first+N,便可以得到第N个元素的地址,因为这些相邻元素是按顺序连续存储的。 比如普通数组就是可随机访问的。 而链表不支持随机访问,链表存储的元素,它们的存储地址也不是连续的,是随机的。 要想访问第N个元素,只能从second = first->next遍历第2个元素,然后再three = first->next遍历第3个元素… 这样一直到第N个元素。所以这样的访问速度就没有随机访问快。
在计算机科学中,随机存取(有时亦称直接访问)代表同一时间访问一组序列中的一个随意组件。反之则称循序访问,即是需要更多时间去访问一个远程组件。介分两者的传统图解就似比较一轴古代画卷(循序︰所有在组件之前的物料必须事先卷开)及一本图书(随机︰可以随时翻至任何一页)。而更近现代的例子就如比较卡式磁带(循序︰我们必须快速跳过早前的歌曲才可聆听后期的歌曲)及一张CD(随机︰我们可以随意跳至我们想要之处)。不过,RAM一词却被用以作为计算机中的半导体芯片存储器电路。 于数据结构中,随机存取暗指可由一堆数字之中,能够持续访问N值的能力,而且除了数组(及相关结构,例如动态数组)以外,绝少数据结构能够作出类似程序。另外,随机存取对不少算法,如快速排序及二元搜索而言不可或缺。其他数据结构,如合并排序,则凭随机存取作出有效率的输入、删除抑或搜索功能。
-
数据结构是静态的,它只是组织数据的一种方式,如果不在它的基础上操作,构建算法,孤立存在的数据结构是没有用的。
-
数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。
-
是什么?为什么?怎么样?
-
概览图
-
要求
-
边学边练习,刷题,课中涉及到的数据结构和算法,全部自己写出来,用代码实现一遍
-
多思考,多问为什么,多看留言参与讨论
-
每篇学完,必须写一篇学习笔记
-
持续沉淀
01.概念
最新推荐文章于 2023-02-11 14:14:45 发布