作者:jostree转载请注明出处http://www.cnblogs.com/jostree/p/4098562.html题目链接:print neatly 整齐打印 算法导论考虑在一个打印机上整齐地打印一段文章的问题。输入的正文是$n$个长度分别为$L_1,L_2,\dots ,L_n$(以字符...
分类:
编程语言 时间:
2014-11-15 01:24:53
阅读次数:
292
目录 引言 二叉查找树节点定义查找操作插入操作删除操作 二叉查找树存在问题 完整源码讨论区 参考资料内容 1、引言 前面的文章介绍过二分查找、散列表查找;二分查找效率为Θ(lgn)、二分查找要求数组是静...
分类:
编程语言 时间:
2014-11-14 01:29:31
阅读次数:
288
描述RANDOM(a,b)的过程的一种实现,它只调用RANDOM(0,1)。作为a和b的函数,你的程序的期望运行时间是多少?(RANDOM(0,1)以等概率输出0或者1,RANDOM(a,b)以等概率输出[a,b]之间的数(整数))要RANDOM(a,b)等概率输出[a,b]之间的数,只要等概率得到...
分类:
编程语言 时间:
2014-11-11 12:06:11
阅读次数:
282
#include
#include
#include
#include
using namespace std;
//采用普通的递归算法来求解钢条分割的最大的收益
int cut_rod(int *p,const int &n)
{
if(n==0)
return 0;
int q=-1;
for(int i=1;i<=n;++i)
{
q=max(q,p[i]+cut_rod(p...
分类:
编程语言 时间:
2014-11-10 15:34:51
阅读次数:
361
#include
#include
using namespace std;
//void insert_sort(vector &a)
//{
// int temp;
// size_t n = a.size();
// for ( int i= 1; i = 0 && a[j]>a[j + 1]; j--...
分类:
编程语言 时间:
2014-11-08 09:19:05
阅读次数:
192
InsertSort中有关键的一步是把当前元素A[i]插入到已经排好序的A[1,i-1]的合适的位置上,在原始的InsertSort算法中,采用的是从后往前一步一步查找的方法,习题2.3-6要求利用习题2.3-5中的binary search的方法,加速这个插入的过程。把binary search ...
分类:
编程语言 时间:
2014-11-06 21:52:18
阅读次数:
220
地球人都知道“二分查找”,方法也非常简单,但是你能不能在10分钟内写出一个没有bug的程序呢?知易行难,自己动手写一下试一试吧。public class BinarySearch { public static int search(int [] A,int target,int a, int...
分类:
编程语言 时间:
2014-11-06 21:52:14
阅读次数:
180
11.1直接寻址表当关键字的全域U很小,可采用直接寻址的方式。假设动态集合S的元素都取自全域U={0, 1, ..., m-1}的一个关键字,并且没有两个元素具有相同的关键字。为表示动态集合,使用直接寻址表(diret-address table),记为T[0...m-1],其中的每个位置称为槽(s...
分类:
编程语言 时间:
2014-11-06 19:23:27
阅读次数:
358
此题是算法导论贪心算法的16.1-5题。
问题描述:
考虑一个活动选择问题的一个变形:每个活动ai除了开始和结束时间外,还有一个值vi。目标不再是求规模最大的兼容活动子集,而是求值之和最大的兼容活动子集。也就是说,选择一个兼容活动子集A,是的vk(k属于A)之和最大化。设计一个多项式时间的算法求解此问题。
思路:
此题是活动安排问题的一个变形。最优化目标不再是最大兼容活动子集,所以...
分类:
其他好文 时间:
2014-11-06 17:36:27
阅读次数:
158