问题描述:序列X={x1,x2,…,xn},Y={y1,y2,…,yn},当Z={z1,z2…,zn}是X的严格递增下标顺序(可以不连续)的子集,也是Y的严格递增下标顺序(可以不连续)的子集,则Z是X和Y的公共子序列。例如X={A,B,C,B,D,A,B},Y={B,D,C,A,B,A},{B,C,A}、{B,C,B,A}、{B,D,A,B}都是X和Y的公共子序列。其中最长的公共子序列叫做Long...
分类:
其他好文 时间:
2014-09-10 15:53:20
阅读次数:
317
最短路径算法也是常用的图算法,在网上看到了一份c的代码,写的很清楚,今天有空给写成java的了,就当练手了。另,算法导论362页详细介绍了Bellman-Ford算法,本来打算再写个Dijsktra算法的,可是今天比较赖,就写这一个算法吧。package path;import java.util....
分类:
Web程序 时间:
2014-09-10 15:28:40
阅读次数:
175
算法导论:任意一个比较排序算法,在最坏的情况下,至少要做n*lg(n)次的比较,因此堆排序与归并排序是渐近最优的比较排序算法但计数排序、基数排序和桶排序都不采用比较的方式来确定元素的顺序,因此下界n*lg(n)对它们并不适用计数排序假设被排序的元素都在范围[0, k]中,k为正整数,当k=O(n)的...
分类:
其他好文 时间:
2014-09-09 20:05:59
阅读次数:
201
目录 1、矩阵相乘的朴素算法 2、矩阵相乘的strassen算法 3、完整测试代码c++ 4、性能分析 5、参考资料内容 ...
分类:
其他好文 时间:
2014-09-09 18:16:29
阅读次数:
407
关于
严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。
这篇文章讲了什么?
我这些年学习数据结构和算法的总结。
一些不错的算法书籍和教程。
算法的重要性。
初学
第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有...
分类:
其他好文 时间:
2014-09-09 12:42:38
阅读次数:
291
KMP算法的实现,基于算法导论32.4节。int* generateNext(string &p){ const int m = p.length(); int *next = new int[m]; int k = -1; next[0] = -1; for (int...
分类:
编程语言 时间:
2014-09-09 11:05:18
阅读次数:
178
1 //goal: heap sort 2 //time: 9/7/2014 3 //author: zrss 4 //reference: introduction to algorithms 5 6 #include 7 #include 8 9 #define MAX_DATA 10...
分类:
其他好文 时间:
2014-09-09 10:29:28
阅读次数:
233
基本数据结构主要包括:栈、队列、链表和有根树。10.1 栈和队列栈和队列都是动态集合,且在其上进行DELETE操作所移除的元素时预先设定的。在栈中,被删除的是最近插入的元素:栈实现的是一种后进先出(LIFO)策略。队列实现的是一种先进先出(FIFO)策略。栈栈上的INSERT操作称为压入(PUSH)...
分类:
其他好文 时间:
2014-09-07 12:13:05
阅读次数:
281
目录 1、分治求x的n次方思路 2、c++代码实现内容 1、分治求x的n次方思路T(n)=Θ(lgn) 为了计算乘方数a^n,传统...
分类:
其他好文 时间:
2014-09-06 18:37:53
阅读次数:
333