数据结构与算法
吴江2000
LTE/NR通信工程师,熟悉C语言、数据结构与算法、基站通信协议。
展开
-
归并排序
#include #include #include using namespace std; void merge(int *data, int low, int mid, int high, int *tmp) { int i = low; int j = mid + 1; int k = low; while (i <= mid&&j <= high) { if (d原创 2017-03-19 15:11:49 · 186 阅读 · 0 评论 -
最大子序列和
问题描述 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 #include #include #include #define Max(a,b) (a)>(b)?(a):(b) using namespace std; //最大原创 2017-03-19 15:39:23 · 298 阅读 · 0 评论 -
最长公共子序列
#include #include #include using namespace std; #define Max(a,b) (a)>(b)?(a):(b) int main(void) { string str1 = "abcdss"; string str2 = "asbda"; int len1 = str1.length(); int len2 = str2.len原创 2017-03-21 10:22:22 · 241 阅读 · 0 评论 -
动态规划和贪心算法
动态规划讲的很清楚的一篇博客: http://blog.csdn.net/baidu_28312631/article/details/47418773原创 2017-03-19 21:45:33 · 218 阅读 · 0 评论 -
最长重复子串
思路:使用后缀数组解决 分析: 1、由于要求最长公共子序列,则需要找到字符串的所有子串,即通过产生字符串的后缀数组实现。 2、由于要求最长的重复子串,则需要对所有子串进行排序,这样可以把相同的字符串排在一起。 3、比较相邻字符串,找出两个子串中,相同的字符的个数。 注意,对于一个子串,一个与其重复最多的字符串肯定是紧挨着自己的两个字符串。 步骤:原创 2017-04-14 21:04:38 · 1352 阅读 · 0 评论 -
最长回文子串
#include #include #include #include using namespace std; //最长回文子串 //有字母s,用c[i,j]=1表示子串s[i,j]为回文子串,那么有递推式 // c[i,j]=c[i+1,j-1] if(s[i]==s[j]) // c[i,j]=0 if(s[i]原创 2017-04-19 20:50:11 · 270 阅读 · 0 评论 -
最长公共字符串
#include #include #include #include //#include "Customer.h" using namespace std; //最长公共字符串——动态规划 //假设需要求得字符串为str1,str2。函数f(m,n)分别为 str1[m],str2[n] //结尾的公共字符串长度。 //有以下递推公式:原创 2017-04-16 22:18:01 · 364 阅读 · 0 评论