【专栏】数据结构与算法之美--By 王争

为工程师量身打造的数据结构和算法私教课,课程链接


I. Comments

II. Contents

00. 开篇词 : 从今天起,跨过“数据结构与算法”这道坎

作者的经历 : 本科研究生西安交大,获赠《算法导论》一书,入门深钻,毕业后 Google 工作

01. 为什么要学习数据结构和算法?

避免做 CRUD boy, 向高手之路迈进。
高手之间的竞争就在细节,

  • 用的算法够不够优化?
  • 数据存取的效率是不是够高?
  • 内存是不是够节省?

02. 如何抓住重点,系统高效地学习数据结构和算法?

数据结构与算法,相辅相成,不可分割。再辅以复杂度分析 贯穿始终,理论实践迭代深化,建立完整的知识体系和编程直觉。

03. 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

Big-O 分析法

04. 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

都要熟稔于心.

周末福利 第一期 数据结构与算法书单

可以说很硬核的福利了.

05. 数组:为什么很多编程语言中的数组都是从 0 开始的

因为C中数组下标代表偏移的位置, 后面的语言就继承喽. 特殊的就是 Matlab 那样从 1 开始的,

06. 链表(上): 如何实现LRU缓存淘汰算法

07. 链表(下): 如何轻松写出正确的链表代码

08. 栈: 如何实现浏览器的前进和后退功能

09. 队列: 队列在线程池等有限资源中的应用

10. 递归: 如何用三行代码找到"最终推荐人"?

分治是一种解决问题的思想, 递归是一种实现这种思想的编程技巧.

11. 排序(上): 为什么插入排序比冒泡排序更受欢迎?

因为完成比较后, BubbleSort 需要 swap, 三步一次; 而 InsertionSort 右 move, 一步一次.

12. 排序(下): 如何用快排思想在 O(n) 内查找第 K 大元素?

二分法每次去掉一半儿, 再剩下的一半儿中找, 综合下来就是 O(n)

13. 线性排序: 如何根据年龄给 100 万用户数据排序?

年龄是有限的整数集合 (0, 1,2,…, 120)足够了. 一个一个放桶里, 计数排序

14. 排序优化: 如何实现一个通用的,高性能的排序算法?

没什么新鲜的, 就是判断不同的条件, 采用最优的策略, 具体下来也就是之前的那些方法的组合. 当然, 作为库函数, 性能一定要发挥到极致.

15. 二分查找(上): 如何用最省内存的方式实现快速查找算法?

16. 二分查找(下): 如何快速定位 IP 对应的省份地址?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值