
算法导论习题
my_et
这个作者很懒,什么都没留下…
展开
-
概率问题总结
最近学习了一下算法导论中的概率分析和随机算法 现总结如下 1.雇员问题 一个公司面试N个面试者,一但发现当前这位员工比之前的面试者都要好,那么就会雇用他 抽象为一个排列问题,如2,1,3,5,4, 那么2,3,5会被雇佣因为1比2要小,4比5小。 进一步可以变为一个判断排列中逆序对的问题,初始序列为1,2,3,4,5那么根据规则,所有人会被雇佣。而序列中每增加一个逆序对,被雇佣的人数就会原创 2013-07-14 20:33:15 · 927 阅读 · 0 评论 -
算法导论 堆排序习题
1.怎样利用最大(小)堆构成的优先实现先进先出队列或者栈 开始看这道题没有弄清以什么优先,原来是先进先出队列只要保证先进来优先级高,栈保证后进来优先级高,然后每次弹出堆顶元素即可 2.如何在logN时间里删除一个元素 思路和如何在堆中增加一个元素是一样的,因为堆要的形状要保证是一颗完全二叉树,决定了增减操作只能在堆的尾部进行。 1.先把该元素和堆尾元素交换,并将堆大原创 2013-07-16 16:36:23 · 1127 阅读 · 0 评论 -
快速排序习题
1.修改快速排序中的PATION算法,使得返回q,t,其中p PATION A,p,r q=p-1; t=q;原创 2013-07-20 16:36:55 · 951 阅读 · 0 评论 -
线性时间排序习题
1.设计一个算法,对N个介于0~k之间的数进行预处理,然后能够在O(1)的时间给出有多少个元素介于[a,b]之间 首先肯定要考虑a,b和K的相对大小,这里就假设0 1.参照级数排序累计统计 2.对累计统计的结果中计算c[b]-c[a-1]原创 2013-07-22 11:21:42 · 902 阅读 · 0 评论