14、调度算法:操作系统中的进程是如何调度的

你好,我是微扰君。 之前我们已经学习了大部分常用的数据结构和一些经典的算法思想,从今天开始,我们将正式迈入算法在真实世界的应用,感受计算机先辈们在解决实际问题时天马行空的智慧之光。希望带给你思维乐趣的同时,也能给你解决实际工作里的问题带来一些启示。 ...

业务开发算法50讲

13、哈夫曼树:HTTP2.0是如何更快传输协议头的

你好,我是微扰君。 HTTP 是当今最广为使用的互联网传输协议,我们都听说过HTTP/1.0、HTTP/2.0、SPDY、HTTP/3.0等概念,但是对这几者之间的区别能如数家珍的同学却不多,比如 HTTP/2...

业务开发算法50讲

12、拓扑排序:Webpack是如何确定构建顺序的

你好,我是微扰君。 Webpack是现在最流行的前端构建工具,见证了前端工程化在过去十年里的繁荣发展。如果你是前端工程师,相信你在日常工作中应该会经常使用到。 Webpack让我们可以模块化地进行现代Web应用的前端开发,并基于我们的简单配置,从入口...

业务开发算法50讲

11、字符串匹配:如何实现最快的grep工具

你好,我是微扰君。 grep命令,相信使用过Linux的同学都会非常熟悉,我们常常用它在Linux上进行文本搜索操作,具体来说就是从一段文本中查找某个字符串存在的行。下面一个典型的grep的使用例子,比如我可以用它来看看自己在LeetCode上用Ja...

业务开发算法50讲

10、搜索算法: 一起来写一个简单的爬虫

你好,我是微扰君。 你玩过井字棋的游戏吗?在一个九宫格中,双方轮流用X和O占领一个格子,某一方的O或者X三个连成一线时即可获胜。 这样一个简单井字棋的游戏,如果要让你自己写代码实现一个AI,你会怎么做呢?怎么把博弈过程清晰地表示出来呢? 实际上,许多...

业务开发算法50讲

9、二分:如何高效查询Kafka中的消息

你好,我是微扰君。 今天我们来学习另一个常用的算法思想,二分法。这个算法思想相信即使你没有什么开发经验也不会感到陌生,而且之前讲红黑树的时候我们也简单聊过。 不知道你有没有玩过“猜数字”的游戏。大家规定一个范围,一个人在心里想一个这个范围内的具体数字...

业务开发算法50讲