数据结构与算法
kevin.xu.7
这个作者很懒,什么都没留下…
展开
-
数据结构:栈
What is 栈 符合先进后出,后进先出的,只允许在一端插入和删除的数据结构 Why use 栈 如要先进后出,后进先出,应用栈 受限的元素操作,只有添加和删除 How to implements 栈 数组 链表 Where 应用场景 函数调用, A -> B -> C 表达式解值 3 + 5 * 7 - 8 括号匹配 [{<{}>}] 浏览器的前进后退...原创 2020-02-05 22:18:14 · 76 阅读 · 0 评论 -
数据结构:数组
要点 线性表结构 连续的内存空间和相同的数据类型 低效的插入删除 如果要保持连续的分布,会涉及数据移位,最坏情况为O(n) 删除可以优化为标记删除 扩展 有了容器如ArrayList,数组是否没了用武之地? (1) 如果指定了大小,又没有复杂操作,可直接用数组 (2) 容器不支持原始数据类型,比如int, long,用包装类又低效 注意 查找时间复杂度不一定为O(1), 根据下标访问...原创 2020-02-03 05:32:07 · 89 阅读 · 0 评论 -
算法时间复杂度
标记法 使用大 O() 表示法 分为四种时间复杂度 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度(加权平均法) O = 把每种情况平均后的值相加 均摊时间复杂度 O = (把每种情况复杂度相加) / 情况次数 在代码执行的所有复杂度情况中绝大部分是低级别的复杂度,个别情况是高级别复杂度且发生具有时序关系时,可以将个别高级别复杂度均摊到低级别复杂度上。基本上均摊结果就等于低级别复杂...原创 2020-02-02 21:36:47 · 107 阅读 · 0 评论