
算法
wzbwzt
这个作者很懒,什么都没留下…
展开
-
后缀算法与中缀算法
中缀算法就是日常计算中用到的类似a+b的算法表达式;运算符位于两个运算数中间的位置;后缀算法相比较中缀表达式的结构,不难推出后缀表达式的格式,就是符号位于两个运算量的后边位置,比如ab+表示的就是a+b;后缀表达式又称逆波兰表达式;优点在于:可以配合栈(stack)来完成运算,这种运算只需要按顺序进行而不需要考虑运算符的优先级,并且速度很快。以后缀表达式:abc+de+;为例,他的运算过程是:1.将a,b先后入栈;2.读取到*,将a、b出栈,计算ab;将结果再入栈;3.将c入栈;读取到+;原创 2020-08-04 14:59:24 · 1637 阅读 · 0 评论 -
KMP算法解析
KMP算法用来匹配一个字符串是否包含一个指定字符串;KMP算法的核心是得到子串的部分匹配表;在计算当出现不匹配时子串要回溯的位置时需要用到;部分匹配值:”就是”前缀”和”后缀”的最长的共有元素的长度。以子串ABCDABD为例,来得到他的部分匹配表首先弄清楚前缀与后缀的概念;前缀指去除尾部字符的全部组合;后缀指去除首部字符的全部组合;比如:ABCDA的前缀有[“A”,“AB”,“ABC”,“ABCD”],后缀有[ “BCDA”, “CDA”, “DA”, “A”]按照部分匹配值的定原创 2020-08-03 19:31:39 · 187 阅读 · 0 评论 -
排序的方法
冒泡排序比较相邻的元素。如果第一个比第二个大,就交换它们两个;第一次下来后最大的元素会排在最右边;下一次重复比较时,不会再去判断最后一个元素,以此讲第二大的元素给筛选出来;重复置只需要判断以此为止;func BubbleSort(x []int)[]int{ for i:=0;i<len(x)-1;i++ { for j:=0;j<len(x)-1-i;j++ { if x[j]>x[j+1] { var tmp int tmp=x[j+1]原创 2020-07-28 22:10:32 · 126 阅读 · 0 评论 -
红黑树介绍
红黑树(又叫黑色完美平衡)既是二叉查找树,也是平衡二叉查找树;红黑树定义和性质:每个节点要么是黑色,要么是红色。根节点是黑色。每个叶子节点(NIL)是黑色。每个红色结点的两个子结点一定都是黑色。任意一结点到每个叶子结点的路径都包含数量相同的黑结点。(如果一个结点存在黑子结点,那么该结点肯定有两个子结点)插入的节点是红色红黑树可视化:http://www.u396.com/wp-content/collection/data-structure-visualizations/RedBlac原创 2020-07-19 15:52:55 · 156 阅读 · 0 评论