本文主要的思路都是参考http://kb.cnblogs.com/page/176818/ 如有冒犯请告知,多谢。 一、KMP算法 KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配操作,其基本思想是:每当匹配过程中出现字符串比较不等时,不需回溯指针,而是利用已经得到的“部分匹配”结果将模式 ...
分类:
编程语言 时间:
2016-11-13 22:10:48
阅读次数:
307
一、简介 回溯法的基本思想是:对一个包括有很多结点,每个结点有若干个搜索分支的问题,把原问题分解为对若干个子问题求解的算法。当搜索到某个结点、发现无法再继续搜索下去时,就让搜索过程回溯(即退回)到该结点的前一结点,继续搜索这个结点的其他尚未搜索过的分支;如果发现这个结点也无法再继续搜索下去时,就让搜 ...
分类:
编程语言 时间:
2016-11-13 21:59:44
阅读次数:
199
开篇直接奔主题,无论是顺序表还是链表,它们都是线性表的一种,用比较官方的话来讲,线性表是其组成元素间具有线性关系的一种线性结构,而我们恰好可以采用顺序存储和链式存储结构来表示线性表。接下来将从以下几点...
分类:
编程语言 时间:
2016-11-07 19:50:54
阅读次数:
311
模式匹配 在字符串匹配问题中,我们期待察看源串 “ S串 ” 中是否含有目标串 “ 串T ” (也叫模式串)。其中 串S被称为主串,串T被称为子串。 1、如果在主串中查找到子串,则称为模式匹配成功,返回模式串的第一个字符在主串中出现的位置。 2、如果在主串中未找到子串,则称为模式匹配失败,返回-1。 ...
分类:
编程语言 时间:
2016-10-30 19:14:07
阅读次数:
387
一、Java_Collections表的实现 与c不同Java已经实现并封装了现成的表数据结构,顺序表以及链表。 1、ArrayList是基于数组的实现,因此具有的特点是:1.有索引值方便查找,对于get和set操作花费常数时间,2.但是其缺点是:插入/删除某个数据的代价比较大。 2、LinkedL ...
分类:
编程语言 时间:
2016-10-29 12:16:19
阅读次数:
248
Java数据结构之 Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作。 队列中允许进行插入操作的一端称为队尾,允许进行删除操作的一端 ...
分类:
编程语言 时间:
2016-10-25 14:04:20
阅读次数:
282
点 建立无权图,添加新的顶点,添加边,显示顶点,返回一个和v邻接的未访问顶点,无权图的深度搜索,广度搜索,基于深度搜索的最小生成树,删除顶点,有向图的拓扑排序 有向图的连通性,Warshall算法 主函数 ...
分类:
编程语言 时间:
2016-10-14 00:13:26
阅读次数:
215
带权图的最小生成树——Prim算法和Kruskal算法 带权图的最短路径算法——Dijkstra算法 ...
分类:
编程语言 时间:
2016-10-13 23:56:03
阅读次数:
436