随笔分类 - 算法
摘要:二分查找这个概念是非常简单的一个算法,也就是我们俗称的折半查找,原理是在一个有序的数组中,先取中间的值,如果中间值大于或者小于我们需要查找的值,那么就舍弃一般,在另一半中进行查找. 下面是一个简单的二分查找: 这种方式的查找其实是将值构造成了一颗二叉排序数,然后进行查找.这种搜索的好处在于大大的缩短
阅读全文
摘要:平衡二叉树的重点在于对不平衡的进行旋转从而使它达到平衡. 下面是我理解的平衡二叉树的操作总结: 平衡因子(BF): 这是一个描述平衡度的一个量,计算的方式为 左子树的深度-右子树的深度。 我们可以从BF中就能知道左子树和右子树之间的平衡程度。 插入数据 平衡二叉树最复杂的就是将数据插入到树中了,因为
阅读全文
摘要:最小生成树表示得是连通图的极小连通子图,它包含所有的的顶点,但足以生成n-1条边的数。 下面是我学习的内容和理解。 1.使用普里姆算法构成最小生成树。 先讲一下普里姆算法的思路。普里姆算法思路是这样的: 前提:G={V,E} 这个是我们图的定义这个应该是明白啥意思的。 1.现在定义一个V1表示一个空
阅读全文
摘要:KMP算法的作用在于在一个主串中查找一个主串。 传统查找子串的方法是一个字符一个字符的比较,代码如下: 这种方式在遇到不相同的时候,主串往下移动一位,子串恢复到0.继续的进行对比。 KMP的算法的有点在于子串中如果有相同的部分的话,那么可以省略一部分的校验,下面这个图加深一些印象: 如果我们使用KM
阅读全文
摘要:栈和队列都是线性表,所以满足-只有一个节点没有前继,只有后继,只有一个节点只有后继没有前继,其他的节点只有一个前继只有一个后继。 栈的定义是先进后出,最典型的例子就是弹夹,最先进去的反而是最后射出来的,在实际的软件开发中会进经常的遇到这种类型的线性表,我们成为LIFO(Last in First o
阅读全文
摘要:线性表的定义: 前面的节点叫做前驱,后面的节点叫做后继,线性表规定:只有一个节点具有前驱没有后继(尾节点),只有一个节点只有后继没有前驱(头节点)。 按照存储来说,又分为顺序存储,和链存储式. 顺序储存是将多个节点存放到一个连续的空间,这种方式的优点很明显易于理解,并且在查询上来说非常简便。只需要只
阅读全文

浙公网安备 33010602011771号