摘要:
一、什么是链表 二、链表的优劣 三、常用链表 3.1 单链表 3.2 循环链表 3.3 双向链表 和单链表相比,存储相同的数据,需要消耗更多的存储空间。 插入、删除操作比单链表效率更高O(1)级别。 以删除操作为例,删除操作分为2种情况:给定数据值删除对应节点和给定节点地址删除节点。 对于前一种情况 阅读全文
摘要:
1. 数组 2. 数组下标随机访问 查询效率高。 计算机随机访问数组中的某个元素时,通过下面的寻址公式计算元素存储的的内存地址;若下标以1开始,则要进行一次(i -1)操作。 数组的查找操作时间复杂度并不是O(1)。即便是排好的数组,用二分查找,时间复杂度也是O(logn)。 正确表述:数组支持随机 阅读全文
摘要:
一、复杂度分析的4个概念 二、为什么要引入这4个概念? 三、如何分析平均、均摊时间复杂度? 1.平均时间复杂度 代码在不同情况下复杂度出现量级差别,则用代码所有可能情况下执行次数的加权平均值表示。 2.均摊时间复杂度 两个条件满足时使用: 1)代码在绝大多数情况下是低级别复杂度,只有极少数情况是高级 阅读全文
摘要:
一、什么是复杂度分析? 二、为什么要进行复杂度分析? 2.1 事后统计法 2.2.1 概念 通过运行代码跑,统计、监控,得到算法执行的时间和占用的内存大小。 2.2.2 劣势 2.2 复杂度分析 三、如何进行复杂度分析? 3.1.大O表示法 1)来源 算法的执行时间与每行代码的执行次数成正比,用T( 阅读全文
摘要:
此系列文章内容全部来自:极客时间 王铮老师的数据结构与算法之美以及留言部分 1. 基本概念 数据结构:一组数据的存储结构。 算法:操作数据的一组方法。 数据结构为算法服务,算法要作用于特定的数据结构上。 2. 复杂度分析 3. 数据结构 4. 算法 阅读全文