- 博客(5)
- 收藏
- 关注
原创 拓扑排序
拓扑排序概念:对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序的序列,简称拓扑序列。说人话: 对做事的先后进行排序,就像衣服是从里穿到外一样。预备知识(AOE网):通常,我们把这种顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网(Activit...
2019-06-09 15:54:24 88
原创 DFS和BFS
这两种都是简便的图的搜索算法,是非常基础的先谈DFS(深度优先搜索)DFS从名字上可见端倪,实际上DFS就是一条路莽到底,发现走不通了,再回头来找新的路。既然要回头自然少不了栈的使用,为了避免走重复的路,往往需要对途径的点进行标记比如像迷宫之类的题目。基本思路1)访问顶点v;2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;3)若此时图中尚...
2019-06-08 21:45:16 81
原创 KMP算法(prefix table)
注意这里是采用prefix table实现kmp算法首先谈谈prefix_table例如字符串ch[]=ababc可以先将其的子串列出a -------------前缀为0,后缀为0ab------------前缀为a,后缀为b,最长相同前后缀为0aba-----------最长相同前后缀为1(a)abab---------最长相同前后缀为2 (ab)ababc-------...
2019-06-05 23:27:10 767 1
原创 快速排序
快排思路:1)设置两个变量i、j,排序开始的时候:i=0,j=N-2;2)以第N-1数组元素作为关键数据,赋值给key,即key=A[N-1];3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j]4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i]5) 将A[i]和A[j]的值交换;6)重复第3、4、5步,直到i=j注意这...
2019-06-05 20:03:29 255
原创 约瑟夫环问题 ( 数学解法)
@(这里写自定义目录标题)基本问题描述:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。(也类似于变态杀人狂问题)通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。通常,我们会要求输出最后一位出列的人的序号。那么这里主要研究...
2019-06-04 19:44:42 1346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人