算法
文章平均质量分 80
wbhua1984
这个作者很懒,什么都没留下…
展开
-
算法——八皇后
八皇后问题 这是一个经典递归问题,问题要求:在一个n*n的棋盘上摆放n个皇后,要求两个皇后不能出现在同一横排,纵列,斜线上。 下图是8*8的棋盘: 运用递归的方法可以很容易实现出来,得到结果显示这种棋盘n=8的情况下有92中摆放方式。 #include #include const int N = 8;// int queens[N] = {0};//每一行都有且只有1个皇后,保存原创 2017-03-26 21:19:45 · 225 阅读 · 0 评论 -
矩阵乘法——strassen算法
strassen算法 是通过分治法进行快速矩阵乘法,运行时间达到O(n^lg7). 每一次进行18次加/减法,7次乘法。 分治过程如下: 而且这种运算方式是有局限的: 例如矩阵维数n必须是2的幂,用其他的数会导致分割矩阵时出现奇数。 每次分割计算生成的子矩阵消耗空间。 不像简单的方法那样有数值稳定性。 实现代码如下:原创 2017-03-26 22:04:48 · 1185 阅读 · 0 评论 -
动态规划——最长公共子序列LCS
【算法导论 ch15-4】 首先确定什么是最长公共子序列: 最长公共子串(longest common substring) :其中的子串是原串的一个连续的部分; 最长公共子序列(longest common subsequence):是不改变序列的顺序,从序列中得到任意的元素从而获得的新序列 二者区别=>子串中字符位置必须连续,子序列可以不必连续 (由于序列元素顺序的不同,得到的LCS原创 2017-05-03 22:00:48 · 300 阅读 · 0 评论