45、哈希表与哈希算法:哈希表适合用在什么样的情景

你好,我是王健伟。 这节课我们来看一个新的数据结构——哈希表。 哈希表也叫散列表或Hash表,是由数组演化来的一种扩展,用于存放数据。哈希表跟数组一样,支持查询、插入、删除等操作,但哈希表的表现尤其突出,因为它大大降低了查找数据所消耗的时间。 它是怎...

44、跳表:为什么Redis用跳表实现而MySQL用B+树

你好,我是王健伟。 字符串方面知识的讲解告一段落后,这次,我们讲一讲跳表相关的知识,也讲一讲大家所关心的一个问题——为什么Redis用跳表实现而MySQL用B+树实现。 在跳表中查询及复杂度分析回顾以往学习过的数组(线性表的顺序存储)和链表(线性表的...

43、串的KMP模式匹配算法之改进:通过优化代码解决多次重复比较问题

你好,我是王健伟。 上节课介绍的KMP模式匹配算法是通过next数组参与计算来达到加速匹配的目的。但是,在next数组中,因为没考虑当前字符的位置情况,只考虑了字符不匹配时单纯的指针移动问题(point1和point2值的改变),这很可能导致移动后将...

42、串的KMP模式匹配算法之实现与性能分析:代码实现简单

你好,我是王健伟。 上节课我们针对串的KMP模式匹配算法配以了大量的图形进行了非常仔细的观察,而观察的目的,就是为了这节课代码的实现。 串的KMP模式匹配算法实现代码并不多,但只有你学好了上节课的内容,对该算法有详细的理解,才能理解本节这样写代码的含...

41、串的KMP模式匹配算法观察:理解困难

你好,我是王健伟。 上节课我带你学习了串的朴素模式匹配算法,这种算法思想简单,执行效率不高。为什么这么说呢?我带你仔细分析一下。 朴素模式匹配算法的问题串的朴素模式匹配算法经常可以看到主串的指针point1回退的情形。导致匹配时间增加。看一下图1: ...