
算法学习
文章平均质量分 83
程序猿胖哥
网络安全工程师/渗透工程师
展开
-
Rabin-Karp算法
本文讲了Rabin-Karp算法,包含C++中的代码实现。先讲一下Rabin-Karp算法,它是字符串快速查找的一种算法,解决思路是把一个字符串,看作是字符集长度进制的树,如果是ASCII,这个进制就是128,如果是只考虑英文小写字母,那这个进制就是26,通过数值的比较得出字符串的比较结果。在这里,要先将一个背景知识,也就是朴素的模式匹配算法。它是把要查找的内容,一步一步的与源文(这里指被原创 2018-02-05 06:36:50 · 7850 阅读 · 0 评论 -
C++ 算法学习栈和队列
栈的定义:栈是一种重要的线性结构,栈是线性表的一种具体形式。官方定义:栈(Stack)是一个后进先出(Last in first out,LIFO)的线性表,它要求只在表尾进行删除和插入操作。所谓的栈,其实也就是一个特殊的线性表(顺序表、链表),但是它在操作上有一些特殊的要求和限制:栈的元素必须“后进先出”。栈的操作只能在这个线性表的表尾进行。注:对于栈来说,这个表尾称为栈的栈顶(原创 2018-02-05 06:40:55 · 528 阅读 · 0 评论 -
C++ 数据结构与算法
数据结构分为逻辑结构和物理结构四大逻辑结构:集合结构,集合结构中的数据元素除了同属于一个集合外,他们之间没有其他不三不四的关系。线性结构,线性结构中的数据元素之间是一对一的关系。树形结构,树形结构中,数据元素之间存在一种一对多的层次关系。图形结构,图形结构的数据元素是多对多的关系。数据元素的存储形式:顺序存储和链式存储顺序存储:是把数据元素存放在地址连续的存储单元里,其原创 2018-02-05 06:47:43 · 8288 阅读 · 1 评论