算法
苍之羽
喜欢C语言和Java
展开
-
八皇后问题(递归回溯算法详解+C代码)
为了理解“递归回溯”的思想,我们不妨先将4位皇后打入冷宫,留下剩下的4位安排进4x4的格子中且不能互相打架,有多少种安排方法呢?现在我们把第一个皇后放在第一个格子,被涂黑的地方是不能放皇后的:第二行的皇后只能放在第三格或第四格,比如我们放在第三格:这样一来前面两位皇后已经把第三行全部锁死了,第三位皇后无论放在第三行的哪里都难逃被吃掉的厄运。于是在第一个皇后位于第一格,第二个皇后位于第三格...原创 2019-01-28 23:12:14 · 27652 阅读 · 29 评论 -
BF算法详解
BF算法      BF(Brute Force)算法也就是传说中的“笨办法”,是一个暴力/蛮力算法。设串S和P的长度分别为m,n,则它在最坏情况下的时间复杂度是O(m*n)。BF算法的最坏时间复杂度虽然不好,但它易于理解和编程,在实际应用中,一般还能达到近似于O(m+n)的时间度(最坏情况不是那么容易出现的,RP问题),因此,还在被大量使用。...原创 2019-02-15 11:30:16 · 12346 阅读 · 0 评论 -
KMP算法详解
       Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人原创 2019-02-15 12:45:40 · 413 阅读 · 0 评论 -
全排列的递归算法(C语言)
全排列的递归算法详解      进行全排列,对每种可能进行枚举,例如123,那么可以1与2互换,1与3互换,以及2与3互换。  &nbs原创 2019-03-16 21:43:26 · 32568 阅读 · 9 评论 -
字典序全排列算法(非递归全排列算法)
全排列算法:我们先看一个例子。示例: 1 2 3的全排列如下:1 2 3 , 1 3 2 , 2 1 3 , 2 3 1 , 3 1 2 , 3 2 1我们这里是通过字典序法找出来的。那么什么是字典序法呢?从上面的全排列也可以看出来了,从左往右依次增大,对这就是字典序法。可是如何用算法来实现字典序法全排列呢?我们再来看一段文字描述:(用字典序法找124653的下一个排列)你主要看红...原创 2019-03-17 00:44:51 · 3258 阅读 · 6 评论