摘要:KMP简介KMP是一种由Knuth(D.E.Knuth)、Morris(J.H.Morris)和Pratt(V.R.Pratt)设计的字符串匹配算法。对目标串T[0:n-1]中查找与之匹配的模式串P[0:m-1],KMP算法的时间复杂度为O(n+m),它是核心思想是通过目标串和模式串已经部分匹配的信...
阅读全文
随笔分类 - C/C++
2015年11月20日,突然想重新学C++,也开始写博客。希望1年后的自己,和如今的自己相比,有明显进步。
摘要:汉诺塔汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金钢石柱子,其中一根柱子自底向上叠着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。——引自维基百科若给汉诺塔传...
阅读全文
摘要:堆的基础知识堆是一种有序的二叉树,分为大堆和小堆。其中大堆的父结点的值大于或等于子结点的值,而小堆父结点的值则小于或等于孩子结点的值。堆的特点就是根结点要么最大,要么最小,所以经常用堆的特性来求最值。堆可以用数组存储。若用a[0:n]来存储堆的元素,若已知a[i]是父结点(2*i+2 a[j]" 的...
阅读全文
摘要:栈栈是特殊的链表,只能在表尾进行插入(push)和删除(pop),具有后进先出的特点(LIFO)链表分为动态链表和表态链表。动态链表是根据需要给栈元素分配存储空间,而静态链表则是固定存储空间的。C++ STL(Standard Template Library, 即标准模板库) 定义了栈的基本操作,...
阅读全文

浙公网安备 33010602011771号