0、开篇词:真实世界的算法,和你想的不一样你好,我是黄清昊,毕业于上海交通大学信息工程专业,Hashdata 数据库内核工程师,公众号微扰理论作者。 在LeetCode上,我还有一个名字叫“微扰理论”(之后就以微扰君自称),刷了800多道题,贡献了200多篇优质算法题解,可以说对算法学习很有...2025-12-08业务开发算法50讲
1、动态数组:按需分配的vector为什么要二倍扩容你好,我是微扰君。今天我们进入第一章基础数据结构的学习。 计算机程序一直以来最根本的作用就是处理数据。即使在早期的计算机中,计算就已经不仅仅是几个数字之间的加减乘除那么简单了,经常需要处理大量线性存储的数据,一个很好的例子就是向量乘法。显然,我们需要...2025-12-08业务开发算法50讲
2、双向链表:list如何实现高效地插入与删除你好,我是微扰君。 在上一讲实现的一个简易银行账户管理系统中,每个账号都对应了一个余额,系统支持用户的开通、存/取款和查询余额。我们使用动态数组容器满足了频繁随机访问查询的需求。 但是如果要在系统里支持删除的功能,就会有一个问题:我们为了不...2025-12-08业务开发算法50讲
3、双端队列:并行计算中的工作窃取算法如何实现你好,我是微扰君。 目前我们已经学习了 vector 动态数组和 list 双向链表两种STL中的序列式容器了,今天我们继续学习另一种常见的序列式数据结构,双端队列。 在并行计算中,我们常常会用多进程处理一些复杂的计算任务。为了能够通过多进程加速计算...2025-12-08业务开发算法50讲
4、栈:函数调用的秘密究竟是什么你好,我是微扰君。 目前为止,我们已经介绍了STL里的大部分序列式容器,包括vector、deque和list,也对应着数组、队列和链表这几种基础数据结构;今天我们来学习最后一种常用的线性数据结构,栈。 栈这个词,相信每一个研发同学在学习编程的过程中...2025-12-08业务开发算法50讲
5、HashMap:一个优秀的散列表是怎么来的你好,我是微扰君。 过去四讲我们学习了STL中全部的序列式容器,数组、链表、队列、栈;今天来谈一谈另一类容器,关联式容器。所谓“关联式”,就是存储数据的时候,不只是存储元素的值本身,同时对要存储的元素关联一个键,形成一组键值对。这样在访问的时候,我们...2025-12-08业务开发算法50讲