上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 198 下一页
摘要: 作为一个软件开发工程师,你对数据库肯定再熟悉不过了。作为主流的数据存储系统,它在我们的业务开发中,有着举足轻重的地位。在工作中,为了加速数据库中数据的查找速度,我们常用的处理思路是,对表中数据创建索引。那你是否思考过,数据库索引是如何实现的呢?底层使用的是什么数据结构和算法呢?算法解析思考的过程比结 阅读全文
posted @ 2021-08-13 09:56 brady-wang 阅读(108) 评论(0) 推荐(0)
摘要: 我们今天讲另外一种特殊的树,“堆”($Heap$)。堆这种数据结构的应用场景非常多,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为$O(n\log n)$的排序算法。前面我们学过快速排序,平均情况下,它的时间复杂度为$O(n\log n)$。尽管这两种排序算法的时间复杂度都是$O(n\lo 阅读全文
posted @ 2021-08-12 18:12 brady-wang 阅读(199) 评论(0) 推荐(0)
摘要: 搜索引擎的热门搜索排行榜功能你用过吗?你知道这个功能是如何实现的吗?实际上,它的实现并不复杂。搜索引擎每天会接收大量的用户搜索请求,它会把这些用户输入的搜索关键词记录下来,然后再离线地统计分析,得到最热门的Top 10搜索关键词。那请你思考下,假设现在我们有一个包含10亿个搜索关键词的日志文件,如何 阅读全文
posted @ 2021-08-12 18:12 brady-wang 阅读(1007) 评论(0) 推荐(0)
摘要: 红黑树是一个让我又爱又恨的数据结构,“爱”是因为它稳定、高效的性能,“恨”是因为实现起来实在太难了。我今天讲的红黑树的实现,对于基础不太好的同学,理解起来可能会有些困难。但是,我觉得没必要去死磕它。我为什么这么说呢?因为,即便你将左右旋背得滚瓜烂熟,我保证你过不几天就忘光了。因为,学习红黑树的代码实 阅读全文
posted @ 2021-08-12 18:11 brady-wang 阅读(109) 评论(0) 推荐(0)
摘要: 今天,我们来讲这种数据结构的一种特殊应用,递归树。我们都知道,递归代码的时间复杂度分析起来很麻烦。我们在第12节《排序(下)》那里讲过,如何利用递推公式,求解归并排序、快速排序的时间复杂度,但是,有些情况,比如快排的平均时间复杂度的分析,用递推公式的话,会涉及非常复杂的数学推导。除了用递推公式这种比 阅读全文
posted @ 2021-08-12 18:11 brady-wang 阅读(516) 评论(0) 推荐(0)
摘要: 上一节我们学习了树、二叉树以及二叉树的遍历,今天我们再来学习一种特殊的二叉树,二叉查找树。二叉查找树最大的特点就是,支持动态数据集合的快速插入、删除、查找操作。我们之前说过,散列表也是支持这些操作的,并且散列表的这些操作比二叉查找树更高效,时间复杂度是O(1)。既然有了这么高效的散列表,使用二叉树的 阅读全文
posted @ 2021-08-12 18:10 brady-wang 阅读(82) 评论(0) 推荐(0)
摘要: 上两节,我们依次讲了树、二叉树、二叉查找树。二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作的时间复杂度跟树的高度成正比,理想情况下,时间复杂度是O(logn)。不过,二叉查找树在频繁的动态更新过程中,可能会出现树的高度远大于log2n的情况,从而导致各个操作的效率下降。极端 阅读全文
posted @ 2021-08-12 18:10 brady-wang 阅读(102) 评论(0) 推荐(0)
摘要: 上一节,我讲了哈希算法的四个应用,它们分别是:安全加密、数据校验、唯一标识、散列函数。今天,我们再来看剩余三种应用:负载均衡、数据分片、分布式存储。你可能已经发现,这三个应用都跟分布式系统有关。没错,今天我就带你看下,哈希算法是如何解决这些分布式问题的。应用五:负载均衡我们知道,负载均衡算法有很多, 阅读全文
posted @ 2021-08-12 18:09 brady-wang 阅读(282) 评论(0) 推荐(1)
摘要: 前面我们讲的都是线性表结构,栈、队列等等。今天我们讲一种非线性表结构,树。树这种数据结构比线性表的数据结构要复杂得多,内容也比较多,所以我会分四节来讲解。我反复强调过,带着问题学习,是最有效的学习方式之一,所以在正式的内容开始之前,我还是给你出一道思考题:二叉树有哪几种存储方式?什么样的二叉树适合用 阅读全文
posted @ 2021-08-12 18:09 brady-wang 阅读(230) 评论(0) 推荐(0)
摘要: 还记得2011年CSDN的“脱库”事件吗?当时,CSDN网站被黑客攻击,超过600万用户的注册邮箱和密码明文被泄露,很多网友对CSDN明文保存用户密码行为产生了不满。如果你是CSDN的一名工程师,你会如何存储用户密码这么重要的数据吗?仅仅MD5加密一下存储就够了吗? 要想搞清楚这个问题,就要先弄明白 阅读全文
posted @ 2021-08-12 18:08 brady-wang 阅读(174) 评论(1) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 198 下一页