《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制, ...
分类:
其他好文 时间:
2020-04-11 00:30:02
阅读次数:
84
算法思想: 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。 冒泡排序的时间复杂度为O(n^2) 举例: 4 2 3 1 5 第一趟冒泡 第一轮:2 4 3 1 5 第二轮:2 4 1 3 5 第三轮:2 1 4 3 5 第四轮:1 2 4 3 5 得到最 ...
分类:
编程语言 时间:
2020-04-09 10:28:16
阅读次数:
62
Dijktra算法: 思想:找到距离原点最近的一个顶点,然后以该点为中心进行扩展,最终得到源点到其余各点的最短路径。 缺点:无法解决带负边的图论问题。 输入样例: 6 9 1 (6个点 9条边 起点为1)1 2 11 3 122 3 92 4 33 5 54 3 44 5 134 6 155 6 4 ...
分类:
编程语言 时间:
2020-03-30 16:32:11
阅读次数:
112
快速排序算法思想: 快速排序是冒泡排序的改进算法。它也是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的元素从前面直接放到后面,关键字较小的元素直接从后面放到前面,从而减小了比较次数和交换次数。 对于近乎有序的数组,可采用起始值为数组中随机数字,否则会退 ...
分类:
编程语言 时间:
2020-03-29 17:48:14
阅读次数:
78
算法思想:首先把一个数组中的元素,按照某一方法,先拆分了之后,按照一定的顺序各自排列,然后再归并到一起,使得归并后依然是有一定顺序的 。 算法可自顶向下拆分数组也可以自底向上拆分数组合并 自底向上的归并排序有对索引依赖少的优势,对于链表来说比较适合 //自底向上的归并排序 template<type ...
分类:
编程语言 时间:
2020-03-29 13:07:53
阅读次数:
146
本文记录了关于排列的三道算法题目,相对来说有一定的难度,特别是求下一个排列和全排列中交换递归的算法思想,可以把其作为一个相对固定的思路理解记忆,同时,我们也看到了回溯和递归思想在其中的应用。 ...
分类:
其他好文 时间:
2020-03-23 17:21:30
阅读次数:
81
腰酸背痛一个上午,终于搞定了。。 一 用到二个工具: 1.回溯法的算法思想 2.顺序表(主要用到了删除操作) 二 程序设计步骤: 1.读入图; 这里我没有用严格的图结构。而是用邻接矩阵来表示图,邻接矩阵放在一个txt文件中。(见后文) 读入图就是指读入这个文件。 2.计算图中顶点的入度; 用一个结构 ...
分类:
其他好文 时间:
2020-03-20 17:07:57
阅读次数:
73
思想 每次选择未排序元素中的最小值,将其放在最左边。 想象你打牌的时候,如果你手上有一堆牌,你每次找到最小的牌,然后将其出出来。手上的是未排序的牌,出出去的牌按顺序摆出来,就是已排序的。 比较耗时:第一次比较n,第二次比较n 1,以此类推 插入耗时:插入策略分为,移动选定元素前的元素,然后插入最小值 ...
分类:
编程语言 时间:
2020-03-19 21:52:05
阅读次数:
83
排序的方法就不说了 这里记录一下o(n)复杂度的算法 思想,利用快速排序的划分思想,每一次划分会有一个元素处于最终位置 判断这个位置,若所处位置大于k,则向左边寻找 若所处位置大于k,向右边寻找。 int find_K(int a[],int left, int right,int K) { if( ...
分类:
其他好文 时间:
2020-03-14 19:48:41
阅读次数:
38
算法思想 快速排序是基于冒泡排序的改进,是基于分治思想。 在待排序表L[1...n]中选取一个元素(base)作为基准,一次排序后将排序表划分两个部分L[1...k-1]和L[k+1...n],其中L[1...k-1]中的元素小于base,L[k+1...n]中的元素大于base,然后将base放到 ...
分类:
编程语言 时间:
2020-03-12 09:56:00
阅读次数:
61