算法
文章平均质量分 77
louis9212
心系互联网
展开
-
算法题目二:寻找最长重复子序列(3) 后缀树
本文为转载,有所修改。原作者文章为:http://hi.baidu.com/zealot886/item/5d35b442d059701a886d1072(百度空间)仅为个人学习备份之用途,无任何其他用途! 写这篇文章,主要是因为最近有个课题设计,里面用的字符串匹配。学习后缀树之前,先了解一下Trie这个数据结构Trie是一种搜索树,可用于存储并查找字符串。转载 2013-05-06 15:21:33 · 1793 阅读 · 0 评论 -
五大常用算法(一) 分治算法(5) 快速排序
参考自:http://baike.baidu.com/view/19016.htm?fromId=115472#include using namespace std;void quick(int a[],int left,int right){ if(left >= right) return; int i = left; int j = right;原创 2013-05-08 15:23:34 · 709 阅读 · 0 评论 -
五大常用算法(一) 分治算法(4) 棋盘覆盖
转载自:http://bingxinye1.blog.163.com/blog/static/1687970982010910103023578/在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖。 四各L型骨牌如下图1 图1 棋盘中的特殊方格如图2转载 2013-05-08 11:33:38 · 1071 阅读 · 0 评论 -
五大常用算法(一) 分治算法(3) Strassen矩阵乘法
strassen's矩阵相乘对于矩阵乘法 C = A × B,通常的做法是将矩阵进行分块相乘,如下图所示:从上图可以看出这种分块相乘总共用了8次乘法,当然对于子矩阵相乘(如A0×B0),还可以继续递归使用分块相乘。对于中小矩阵来说,很适合使用这种分块乘法,但是对于大矩阵来说,递归的次数较多,如果能减少每次分块乘法的次数,那么性能将可以得到很好的提高。Strassen矩阵乘法就是采用转载 2013-05-08 09:55:12 · 1885 阅读 · 0 评论 -
最字头之四:最长不重复字串
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---注:代码为本人参考作者实现的。并非作者的代码,如果有错误请见谅!题:从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长不重复子串。本节从最直接的方法逐步优化,渐进探索了四种实现转载 2013-05-21 11:48:51 · 1035 阅读 · 0 评论 -
五大常用算法(一) 分治算法(2) 大整数乘法
普通算法:参考自:http://wangxiaosu0501.blog.163.com/blog/static/11565259920110495415730/ #include #include #include using namespace std;vector multiply(vector v1,vector v2);int main(){ vector v原创 2013-05-06 15:25:07 · 5974 阅读 · 0 评论 -
算法题目二:寻找最长重复子序列(1) trie树
本文是转载。原作者的声明如下: 作者:海子 出处:http://www.cnblogs.com/dolphin0520/本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。本文只是作为个人平时学习的记录,不做任何用途。Trie树转载 2013-05-06 15:19:49 · 1090 阅读 · 0 评论 -
五大常用算法(一) 分治算法
本文是转载:原文为:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html。分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的转载 2013-05-06 15:23:26 · 757 阅读 · 0 评论 -
算法题目二:寻找最长重复子序列(4) 求给定字符串重复最长的子串
本文为转载。原文地址:http://hi.baidu.com/taozpwater/item/7b705317ca8479f4746a8470谢谢作者的智慧与分享!1、问题 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它。 2、解析 例如“yyabcdabjcabceg”,输出应该为abc和3。转载 2013-05-06 15:22:29 · 1092 阅读 · 1 评论 -
算法题目二:寻找最长重复子序列(2) trie树与后缀树的应用
本文是转载!原博客地址为:http://www.cnblogs.com/aiyelinglong/archive/2012/04/09/2439777.html仅作为个人算法学习的记录之用,不用做任何其他用途。 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于转载 2013-05-06 15:20:41 · 1136 阅读 · 0 评论 -
五大常用算法(一) 分治算法(1) 二分查找
本文章参考自:http://blog.163.com/wujiaxing009@126/blog/static/71988399201241481757657/1.最基础的二分查找:#include using namespace std;int bsearch(int t[],int k,int n){ int low = 0; int high = n - 1;原创 2013-05-06 15:24:26 · 997 阅读 · 0 评论 -
算法题目一:全排列(C++实现)
代码实现参考自CSDN的牛人http://my.csdn.net/MoreWindows的文章:http://blog.csdn.net/morewindows/article/details/7370155 仅为学习记录,不做任何用途下面是使用STL实现的C++代码。考虑了重复单元素的情况。 #include #include #include void fun原创 2013-05-06 15:18:28 · 971 阅读 · 0 评论 -
最字头之二:最长公共字串
除代码外,其他文字部分均为直接转载。代码为参考。文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---这个LCS跟前面说的最长公共子序列的LCS不一样,不过也算是LCS的一个变体,在LCS中,子序列是不必要求连续的,而子串则是“连续”的。即:题:给定两个字符串X,Y,求二转载 2013-05-20 16:17:06 · 876 阅读 · 0 评论 -
最字头之三:最长重复子串
在之前的博文已经有记录,只记录代码。最简单的算法:#include #include using namespace std;int length(char* p,char* q){ int len = 1; //if(*p == *q) len++; while(*p++ == *q++ && *p && *q)//后面的q和p已经经前面的++计算了 len原创 2013-05-20 19:42:35 · 768 阅读 · 0 评论 -
最字头之一:最长公共子序列
转载自:http://blog.csdn.net/yysdsyl/article/details/4226630 请支持原PO的博客,非常精彩!动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一转载 2013-05-19 16:46:52 · 687 阅读 · 0 评论 -
五大常用算法(二)动态规划
转自:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是转载 2013-05-09 09:44:05 · 782 阅读 · 0 评论