30、图的表示:如何存储微博、微信等社交网络中的好友关系?微博、微信、LinkedIn这些社交软件我想你肯定都玩过吧。在微博中,两个人可以互相关注;在微信中,两个人可以互加好友。那你知道,如何存储微博、微信等这些社交网络的好友关系吗? 这就要用到我们今天要讲的这种数据结构:图。实际上,涉及图的算法有很多,也...2025-10-30数据结构与算法之美
31、深度和广度优先搜索:如何找出社交网络中的三度好友关系?上一节我们讲了图的表示方法,讲到如何用有向图、无向图来表示一个社交网络。在社交网络中,有一个六度分割理论,具体是说,你与世界上的另一个人间隔的关系不会超过六度,也就是说平均只需要六步就可以联系到任何两个互不相识的人。 一个用户的一度连接用户很好理解,...2025-10-30数据结构与算法之美
32、字符串匹配基础(上):如何借助哈希算法实现高效字符串匹配?从今天开始,我们来学习字符串匹配算法。字符串匹配这样一个功能,我想对于任何一个开发工程师来说,应该都不会陌生。我们用的最多的就是编程语言提供的字符串查找函数,比如Java中的indexOf(),Python中的find()函数等,它们底层就是依赖接下...2025-10-30数据结构与算法之美
33、字符串匹配基础(中):如何实现文本编辑器中的查找功能?文本编辑器中的查找替换功能,我想你应该不陌生吧?比如,我们在Word中把一个单词统一替换成另一个,用的就是这个功能。你有没有想过,它是怎么实现的呢? 当然,你用上一节讲的BF算法和RK算法,也可以实现这个功能,但是在某些极端情况下,BF算法性能会退化...2025-10-30数据结构与算法之美
34、字符串匹配基础(下):如何借助BM算法轻松理解KMP算法?上一节我们讲了BM算法,尽管它很复杂,也不好理解,但却是工程中非常常用的一种高效字符串匹配算法。有统计说,它是最高效、最常用的字符串匹配算法。不过,在所有的字符串匹配算法里,要说最知名的一种的话,那就非KMP算法莫属。很多时候,提到字符串匹配,我们首...2025-10-30数据结构与算法之美
35、Trie树:如何实现搜索引擎的搜索关键词提示功能?搜索引擎的搜索关键词提示功能,我想你应该不陌生吧?为了方便快速输入,当你在搜索引擎的搜索框中,输入要搜索的文字的某一部分的时候,搜索引擎就会自动弹出下拉框,里面是各种关键词提示。你可以直接从下拉框中选择你要搜索的东西,而不用把所有内容都输入进去,一定...2025-10-30数据结构与算法之美