
算法分析
kofsky
Welcome
展开
-
撰写仅有一行语句的函数
函数原形已经给出:int p(int i, int N);功能:调用该函数,打印如下格式的输出,例p(1, 7);1234567654321即每行一个数字。(注意:N只打印一次)要求:函数中唯一能够调用的函数就是printf。只使用一条语句,如果你真的不能用一条语句,每增加一条语句扣1分。不准使用如下的关键字:typedef, enum, do, while,...2008-06-26 10:30:51 · 101 阅读 · 0 评论 -
讨论记录之哈希表与二叉树
Participants: ZY,LF, HZP, CPPDate: <st1:chsdate isrocdate="False" month="9" w:st="on" day="23" islunardate="False" year="2008">08-9-23</st1:chsdate>7:20 PM<o2008-10-04 15:07:00 · 300 阅读 · 0 评论 -
生成函数与z变换?会不会有些相似?
单边z变换定义为 F(z) = f(0)*z^0+f(1)*z^(-1)+f(2)*z^(-2)+...+f(k)*z^(-k)+...生成函数定义为 F(z) = f(0)*z^0+f(1)*z^(1) +f(2)*z^(2) +...+f(k)*z^(k)+....感觉有些相似。一个是z的正数次幂,一个是z的负数次幂。研究生成函数的时候一般都假设其收敛。z变换有个收敛域,当级数收敛时,z...2008-09-30 21:08:00 · 326 阅读 · 0 评论 -
讨论记录之排序
Participants:CPP,ZY ,LF,HZPDate:08-09-20 7:20PM<o:p></o:p>Recorder: LF,HZP<o:p></o:p>本次讨论重点讨论了 快速排序,推排序,基数排序,计数排序算法和比较树模型;依次介绍各种算法,为了使得记录的完整性,加入了没有讨论的一些简单算法,如果发现错误请及时通...2008-09-22 15:59:00 · 130 阅读 · 0 评论 -
算法导论上几个简单的习题
5.1-2 用random(0,1)来实现random(a,b),并估计运行时间.这个cu上面有讨论。http://bbs2.chinaunix.net/thread-1192193-1-1.html我想了一个超级白痴的 random(a,b) = random(0,1)*(b-a)+a不晓得cu上搞得这么复杂。怪也~ 5.1-3 假设你希望以各1/2的概率输出0和1。你可以自由使用一个输出0...2008-09-09 16:11:00 · 217 阅读 · 0 评论 -
PV操作
进程间的制约进程1、进程2共享打印机缓冲区(公有资源),显然它们应互斥地向缓冲区写数据——间接制约进程1、进程2共享它们之间的缓冲区(私有资源),显然应同步地使用缓冲区——直接制约产生制约的原因进程并发执行——>资源共享资源有限——>资源竞争制约的分类1.间接制约(由共享和竞争公共资源引起的制约)一组在异步环境下的并发进程,由于不允许并发进程交叉使用共享公有资源,从而限制各进程的执行速...2008-09-07 12:58:00 · 314 阅读 · 0 评论 -
非递归遍历二叉树
1.先序遍历从递归说起void preOrder(TNode* root){ if (root != NULL) { Visit(root); preOrder(root->left); preOrder(root->right); }}递归算法非常的简单。先访问跟节点,然后访问左节点,再访问右节点。...2008-09-05 16:17:00 · 116 阅读 · 0 评论 -
[转载]关于快排的优化
快速排序算法是一种基于分治技术的重要的排序算法,自从它被发明以来,就受到了研究人员的广泛注意。多年以来,人们对这个基本算法进行了大量的改良。我搜集并查阅了一些相关的资料,在下文中对这些改进做出一些介绍。一、基本的快速排序算法快速排序算法是由C.A.R. Hoare在1961年发明的一种内排序算法,其大致思想如下[5]:首先,在要排序的序列a中选取一个中轴值,而后将a分区成为两个部分,左边的部分b中...2008-09-02 16:25:00 · 102 阅读 · 0 评论 -
蚂蚁爬橡皮筋问题 之二
昨天想的是蚂蚁爬行的绝对距离,晚上睡觉的时候突然想到,可以用蚂蚁爬行相对橡皮筋的比例来计算。比如说,蚂蚁爬行到了距离终点x的距离,那么只需要再爬行x/l(l为橡皮筋长度)比例的橡皮筋,那么就必定可以到达终点。按照这个比例的想法,可以比较容易的确定蚂蚁爬行橡皮筋比例的上界与下界。假设橡皮筋初始长度为l,蚂蚁爬行速度为v1,橡皮筋膨胀速度为v2将蚂蚁爬行与橡皮筋膨胀两个过程分开情形1:假设蚂蚁先爬行,...2008-09-02 09:57:00 · 331 阅读 · 0 评论 -
字符串匹配算法
字符串匹配定义:文本是一个长度为n的数组T[1…n], 模式是以个长度m<=n的数组P[1…m]P和T的元素都是有限字母表∑中的字符1.字符串朴素匹配也就是蛮力匹配,每次移动一个步长,然后匹配,时间复杂度O((n-m+1)m)2.Rabin-Karp算法Rabin-Karp算法的思想是将模式串P表达为一个值,这样每次进行串匹配的时候,只需要比较这个值就可以了,而不需要对m个字符串进行m次...2008-08-28 16:20:00 · 196 阅读 · 0 评论 -
链表的几个思考题
链表若干1.怎么判断链表中是否有环? (附:怎么快速检测出一个巨大的链表中的死链?)2.给你一个单向循环链表,怎么找出这个链表循环部分的第一个节点?3.链表逆序?4.一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点? 5.给定一个链表的头指针,在一次遍历中,找出这个链表中的中间节点并返回。6.查找链表中倒数第k个节点(只允许遍历链表一次)7.编写实...2008-08-25 21:54:00 · 127 阅读 · 0 评论 -
问题记录:可变缓冲区问题
网络传输存在的一个问题是,当消息发送速度非常快(比如1s发送200个数据包)时,缓冲区可能会填满而导致发送队列后面的数据发送失败 因此试图通过建立可变缓冲区当数据发送速度非常快时,马上扩充缓冲区容量,使其适应数据的发送数率通过动态数组来实现一个动态循环队列的数据缓冲区std::vector *_dataQueue;调试中发现一个问题,就是从缓冲区取出的数据次序与送入次数...2008-07-10 17:30:09 · 233 阅读 · 0 评论 -
逻辑题:住楼问题
[quote]Baker, Cooper, Fletcher, Miller, 和Smith住在一动5层公寓的不同楼层。Baker不在顶楼住。Cooper不在底楼住。Fletcher既不在顶楼也不在底楼。Miller住的楼层比Cooper住的高。Smith和Fletcher的楼层不相邻。Fletcher和Cooper的楼层不相邻。问每个人住的楼层。[/quote]把B,C,F,M,S代表表示这...2008-07-08 15:59:44 · 365 阅读 · 0 评论 -
求解一个简单的逻辑题
[quote]逻辑题:请编程实现,时间一小时。某天!一家珠宝公司被盗!警方怀疑是甲,乙,丙,丁四个人中的一个,因此对四人进行问话。甲说:我不是强盗! ,乙说:丁是强盗,丙说:乙是强盗,丁说:我不是强盗这四个人中只有一人说的是真话。请问谁是强盗!?[/quote]我想的是设置四个bool变量,分别为A,B,C,D为true表示其为强盗,为false表示不是强盗其中只有...2008-07-08 15:18:22 · 935 阅读 · 0 评论 -
一个搜索问题的求解
这是一个模拟竞赛的题目中的一部分。大二下,或是大三上的时候做的,具体时间已经记得不太清楚了。期间提出的一个启发式算法极大的提高了一个搜索的效率,尤为有成就感。即使到现在,在算法方面,也很少有这种拉风的感觉。贴过来,体验一下这种拉风的感觉。嘿嘿。(这个竞赛是和老典和YB一起做的,里面自然有许多许多他们的劳动成果,呵呵,非常的感谢他们,说真的,合作非常的愉快,让我到今天都还记得这种纯粹的快乐...2008-05-06 15:24:00 · 178 阅读 · 0 评论