
算法导论
文章平均质量分 73
奇点看客
这个作者很懒,什么都没留下…
展开
-
8-3变长数据项的排序
一、题目a)给定一个整数数组,其中不同的整数中包含的数字个数可能不同,但是该数组中,所有整数中总的数字数为n。说明如何在O(n)时间内对该数组进行排序b)给定一个字符串数组,其中不同的串包含的字符个数可能不同,但所有串中总的字符个数为n。说明如何在O(n)时间内对该数组进行排序(注意此处的顺序是指标准的字母顺序,例如,a 二、思路a、完全用基数排序无法达到O(n)的时间要求,基数排原创 2015-04-10 14:47:39 · 610 阅读 · 0 评论 -
算法导论10.4有根树的表示习题
10.4-2x=T.rootTree_key_print(x) print x.key; if x.left!=nil Tree_key_print(x.left) if x.right!= nil Tree_key_print(x.right);END10.4-3思路:初始时把根元素压入栈,然后每次弹出一原创 2015-04-17 17:42:57 · 822 阅读 · 0 评论 -
算法导论11.2-4未占用槽分配存储
一、题目说明在散列表内部,如何通过将所有未占用的槽连接成一个自由链表,来分配和存储元素所占的存储空间。假定一个槽可以存储一个标志、一个元素、一个或两个指针。所有的字典和自由链表操作均应具有O(1)的期望运行时间。该自由链表需要是双向链表吗?或者单链表就足够了?二、思路整理(参考官方答案) 每个槽slot有一个布尔值flag属性,表明是否已占用; 未占用slot:一个双向原创 2015-04-20 17:11:23 · 882 阅读 · 0 评论 -
算法导论思考题9-3小顺序统计量问题
一、题目要在n个数中选出第i个顺序统计量,SELECT在最坏情况下需要的比较次数T(n)满足T(n)=θ(n)。但是,隐含在θ记号中的常数项是非常大的。当i相对n来说很小时,我们可以实现一个不同的算法,它以SELECT作为子程序,但在最坏情况下,所做的比较次数更少。a.设计一个能用Ui(n)次比较在n个元素中找出第i小元素的算法,其中,(提示:从⌊n/2⌋个不相交的对的两两比较开始原创 2015-04-14 22:10:10 · 2597 阅读 · 0 评论 -
思考题10-3搜索已排序的紧凑链表
COMPACT_LIST_SEARCH简称为S,COMPACT_LIST_SEARCH'简称为S'a、设COMPACT_LIST_SEARCH(以下简称S)和COMPACT_LIST_SEARCH'(以下简称S')循环中第t次j值为jt,S中While循环t次结束,可能情况为:1.key[jt]=k,返回jt,在S'同样返回jt; 2、S中,key[jt]=k,若key[i原创 2015-04-18 10:03:46 · 756 阅读 · 1 评论