
数据结构/算法
suye233
穷变
展开
-
DFS求图中两点的所有的路径
用DFS算法来求图中两点的所有的路径,在给出代码前,先给大家讲解清楚该算法的原理。 DFS本来被用作图的遍历,现在我们对它进行改造,成为求两点间的所有路径的工具。 先定义如下图: 如何从图中的v1找到到v4的所有路径呢?来看下面步骤:1.从v1出发,将v1标记,并将其入栈。2.找到v0,将其标记,将其入栈。3.找到原创 2018-01-12 15:25:42 · 22396 阅读 · 22 评论 -
redis源码分析与思考(三)——字典中键的两种hash算法
在Redis字典中,得到键的hash值显得尤为重要,因为这个不仅关乎到是否字典能做到负载均衡,以及在性能上优势是否突出,一个良好的hash算法在此时就能发挥出巨大的作用。而一个良好的hash算法往往倾向于把不同的实例分配在不同的散列值上。在Redis中,实现键的哈希值有两种算法实现,一种是djb2算法,另一种就是MurmurHash2算法。原创 2018-09-23 18:14:29 · 487 阅读 · 0 评论 -
redis源码分析与思考(四)——字典遍历与reverse binary iteration算法
在进行字典的遍历时,有着许多的问题去解决。最难处理的点就是如何在rehash的途中有效率的、不遗漏的遍历全部的哈希节点,因为在此时每个哈希节点的地址与索引都是不确定的。在Redis中,其作者基于reverse binary iteration算法来实现的,直译过来就是反转二进制迭代算法,而且实现的非常精妙,Redis之父==Salvatore Sanfilippo==对其的评价是” Hard to explain but awesome.”原创 2018-09-25 21:52:42 · 796 阅读 · 0 评论 -
DFA算法实现敏感词过滤
所谓的确定有限自动机算法,其实本质上是自上而下的文法分析中的一个步骤,即建立起一颗从上到下的语法树。原创 2019-01-27 18:22:09 · 1481 阅读 · 0 评论 -
基础算法与数据结构——树结构
总结一下树的这一数据结构的概述原创 2019-04-02 22:22:09 · 479 阅读 · 0 评论 -
基础算法与数据结构——排序算法
网上有很多关于对排序算法的讲解了,只是别人的终究是别人的,没有经过自己的思考与探究,知识很快就会遗忘,这篇博客主要从排序算法的空间复杂度、时间复杂度,稳定性以及简答易懂的图示讲解来描述常用的排序算法。原创 2019-08-25 16:11:05 · 354 阅读 · 0 评论 -
基础算法与数据结构——二叉堆
堆是优先队列的一种实现,用来解决每次从队列中取出来的元素都为队列中最“优”的元素。原创 2019-08-26 17:40:09 · 157 阅读 · 0 评论 -
基础算法与数据结构——跳表
跳表 是一种随机(跳跃点随机)且有序(数据有序)数据结构,它每个节点包含着多个指针,用来指向其它节点的,跳表就是基于此来实现其功能–跳着查找,它的平均插入以及查找的性能都为O(logn),可用于代替平衡树的一种数据结构。原创 2019-08-27 16:24:09 · 447 阅读 · 0 评论 -
基础算法与数据结构——页面置换算法
这篇博客将带领大家以通俗的语言与简单易懂的图示来描述常用的页面置换算法思想与实现。原创 2019-08-29 11:47:53 · 1488 阅读 · 0 评论