
数据结构与算法之美
越奋斗,越幸运
当你遇到困难时,你会如何去面对, 这将会决定你的人生最终能够走多远!
展开
-
6. 二叉树基础(上):什么样的二叉树适合用数组来存储?
二叉树1. 树的概念2. 二叉树2.1. 简介2.2. 二叉树的存储2.3. 二叉树的遍历 1. 树的概念 高度:从下往上度量,比如我们要度量第 10 层楼的高度、第13 层楼的高度, 起点都是地面,树这种数据结构的高度也是一样,从最底层开始计数,并且计数的起点是0 深度:是从上往下度量的,比如水中鱼的深度,是从水平面开始度量的。所以,树这种数据结构的深度也是类似的,从根结点开始度量,并且计数起...原创 2020-04-30 16:43:52 · 248 阅读 · 0 评论 -
5. 链表
1. 链表(上):如何实现LRU缓存淘汰算法? 1.1. 常见的缓存策略 先进先出策略 FIFO(First In,First Out) 最少使用策略 LFU(Least Frequently Used) 最近最少使用策略 LRU(Least Recently Used) 1.2. 常用的链表结构 单链表 循环链表 约瑟夫问题 双向链表 1.3. 链表和数组性能对比 数...原创 2019-11-11 17:28:44 · 147 阅读 · 0 评论 -
4. 数组:为什么很多编程语言中数组都从0开始编号?
1. 数组的定义 数组Array是一种 线性表 数据结构。 它用一组 连续的内存空间,来存储一组具有 相同类型的数据。 数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。 2. 低效的“插入”和“删除” 假设数组的长度为n, 讲一个数据插入到数组的第k个位置 最优时间复杂度 O(1) 最坏时间复杂度 O(n) 平均时间复杂度 O(n) 如果数组中存储的数据没有任何规律, ...原创 2019-11-11 17:24:32 · 142 阅读 · 0 评论 -
3. 复杂度分析
1. 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗 1.1. 大 O 复杂度表示法 代码执行时间随数据规模增长的变化趋势,也叫渐进时间复杂度,简称时间复杂度 T(n) = O(f(n)) T(n): 代码执行的时间 n: 数据规模的大小 f(n): 每行代码执行的次数总和 O: 表示代码的执行时间 T(n) 与 f(n) 表达式成正比 1.2. 时间复杂度分...原创 2019-11-11 17:20:55 · 202 阅读 · 0 评论 -
数据结构与算法学习书单
1. 入门趣味书 大话数据结构 算法图解 2. 特定编程语言的教科书 数据结构与算法分析:C语言描述 数据结构与算法分析:Python语言描述 数据结构与算法分析:Java语言描述 3. 面试必刷宝典 剑指offer 编程珠玑 编程之美 4. 闲暇阅读 算法帝国 数学之美 算法之美 5. 算法实现github链接 https://github.com/wangzheng0822/...原创 2019-11-08 19:28:40 · 132 阅读 · 0 评论 -
Python 内置类型性能分析
1. Python列表类型不同操作的时间效率 from timeit import Timer def test1(): li = [] for i in range(10000): li.append(i) def test2(): li = [] for i in range(10000): li += [i] def...原创 2019-11-08 19:25:22 · 107 阅读 · 0 评论 -
0. 数据结构算法之美图库
原创 2019-11-08 19:13:11 · 142 阅读 · 0 评论