09 | 队列:队列在线程池等有限资源池中的应用 我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下...
09 | 队列:队列在线程池等有限资源池中的应用 我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下...
08 | 栈:如何实现浏览器的前进和后退功能? 浏览器的前进、后退功能,我想你肯定很熟悉吧? 当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览过...
07 | 链表(下):如何轻松写出正确的链表代码? 上一节我讲了链表相关的基础知识。学完之后,我看到有人留言说,基础知识我都掌握了,但是写链表代码还是很费劲。哈哈,的确是这样...
06 | 链表(上):如何实现LRU缓存淘汰算法? 今天我们来聊聊“链表(Linkedlist)”这个数据结构。学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链...
有人说:“不必把太多人请进生命里,若他们走进不了你的内心,就只会把你的生命搅扰得拥挤不堪。” 朋友不必多,贵在能知心。珍贵的情谊,要留给最值得结交的人。一个人是否值得交往,看...
05 | 数组:为什么很多编程语言中数组都从0开始编号? 提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊。 是的,在每一种编程语言中,基本都会有数组这种数据类型。不...
04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度 上一节,我们讲了复杂度的大O表示法和几个分析技巧,还举了一些常见复杂度分析的例子,比如O(1)、O(logn...
03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗? 我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空...
02 | 如何抓住重点,系统高效地学习数据结构与算法? 你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,...