《算法导论》一书中对最大字段和可谓讲的是栩栩如生,楚楚动人。如果简单的说最大字段和,没有意义。而《算法导论》上举了一个股票的例子。根据股票每天结束的价格来求出一段时间内何时买入何时卖出能是收益最大。把问题做一个转换,求出相邻天数的股票价格的差值(周二 - 周一 = 差值),然后求出连续天数差值和.....
分类:
编程语言 时间:
2015-05-14 11:24:00
阅读次数:
138
算法导论–第二章 merge sort java代码实现 1 public class Sort { 2 public static void main(String[] args){ 3 int[] arr = new int[]{8,30,19,1,45,...
分类:
其他好文 时间:
2015-05-13 12:01:06
阅读次数:
95
算法导论第二章 练习题,使用合并排序算法寻找逆序对 基本思想:在merge过程中,交换位置与一组逆序对是一一对应的。 在左右两个子数组内部是排好序的,所以逆序对的出现仅仅存在于“左数组中的数组大有右数组中的数字”的情况。 所以在每次的merge过程中就可以进行逆序对的计数。java代码实现: 1.....
分类:
其他好文 时间:
2015-05-13 12:00:02
阅读次数:
127
堆堆数据结构是一种数组对象,可以被视为一棵完全二叉树。对于给定的数组A,树的根为A[1],对于给定的下标为i的结点A[i],其父结点PARENT(i)=floor(i/2),左子结点LEFT(i)=2i,右子结点RIGHT(i)=2i+1叶级结点的高度可以认为是0,每向上一层,高度加一,定义树的告诉...
分类:
编程语言 时间:
2015-05-12 22:58:29
阅读次数:
164
解递归式1、代换法substitution1)猜测解的形式2)用数学归纳法找出使解真正有效的常数2、递归树使用递归树时,可以忽略一些“小误差”,将递归产生的结果作为猜测,用代换法进行验证。也可以严格计算每一层递归树的代价,加总成递归式的结果。对于有两个子问题,子问题规模为1/2的递归树(二叉树),树...
分类:
编程语言 时间:
2015-05-12 22:43:56
阅读次数:
135
一些数学问题1、对任意两个函数f(n)和g(n),f(n)=Θ(g(n))当且仅当f(n)=O(g(n))和f(n)=Ω(g(n))2、实数集有一个属性不能应用在渐进符号上三分性:对于实数a和b,下列三种情况有且仅有一种情况成立,a>b,a=b,a<b并不是所有的函数都可以进行渐进比较3、近似的函数...
分类:
编程语言 时间:
2015-05-12 22:34:08
阅读次数:
150
1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct subArray{ 7 int low; 8 int high; 9 float sum; 10 }; 11 //分治策...
分类:
编程语言 时间:
2015-05-10 22:21:30
阅读次数:
243
题意:典型的动态规划例题。又叫做双调欧几里得旅行商问题。算法导论里面的题目。
思路:
dp[i][j] 表示从 i 到 1,再从1到j的距离。在这个路径上,点 1 到 Pmax(i,j) 点之间的所有点有且仅有经过一次。
dp[i][j] = dp[i-1][j] + dis(i,i-1);
dp[i][i-1] = min (dp[i][i-1], dp[i-1][j] + dis(i, j));...
分类:
其他好文 时间:
2015-05-10 19:03:11
阅读次数:
203
代码:/************************************************** * 选择排序 * * 参考:算法导论 第3版 第一部分 第2章 2.2 * * 本例中,数组的第0个位置存放的数值无意义,不参与程序运行过程 ************************...
分类:
编程语言 时间:
2015-05-10 18:50:57
阅读次数:
177
/// /// 快速排序 /// /// 需要排序的数组 /// 当前排序序列的最大索引 /// 当前排序序列的最小索引 static void QuickSort(int[] array,int...
分类:
编程语言 时间:
2015-05-08 17:54:28
阅读次数:
122