以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 计算机考研交流 』   (http://bbs.xml.org.cn/list.asp?boardid=67)
----  DS 疑问???  (http://bbs.xml.org.cn/dispbbs.asp?boardid=67&rootid=&id=39549)


--  作者:borlong
--  发布时间:10/30/2006 7:23:00 PM

--  DS 疑问???
64阶B树中,若B树包含的关键码个数是64K(64*1024),B树的节点均
放在磁盘里,每次只能从磁盘往内存中读入一个节点,查找一个给定
关键字的纪录是,最多需要进行( )次访外操作。

---------------------
请大侠给点思路,行吗?拜谢啦!


--  作者:borlong
--  发布时间:10/30/2006 7:26:00 PM

--  
疑问2:

(a,b,c,d)任意加入括号可以组成多少个不同的广义表?(06年北大ds试题。)

---------------------
这个问题的解法,再ds书中有吗?还是数学的解法啊?又到底怎么解呢?
请大侠指点思路。谢谢。


--  作者:borlong
--  发布时间:10/30/2006 7:50:00 PM

--  
疑问3:
哪儿有06年北大ds & os 权威答案下阿?我做了一份,不知道对错啊????
大侠指点以下吧?把网址写下来,行吗?拜谢!
--  作者:Logician
--  发布时间:10/31/2006 3:50:00 AM

--  
权威的答案是没有的。
网友做的答案在这里有汇总:http://www.ieee.org.cn/dispbbs.asp?boardID=67&ID=37586

PS:求人不如求己,版面上的帖子不算多,翻一遍就能找到了。而且帖子列表的右上角有一个精华按钮(不是正上方的“精华版”,而是右上角“精华 | 在线 | 事件 | 权限 | 管理”这一排按钮的第一个),重要的帖子在那里都能找到。

以下是引用borlong在2006-10-30 19:50:00的发言:
疑问3:
哪儿有06年北大ds & os 权威答案下阿?我做了一份,不知道对错啊????
大侠指点以下吧?把网址写下来,行吗?拜谢!


--  作者:borlong
--  发布时间:10/31/2006 1:07:00 PM

--  
dear logician,您真好!!!
--  作者:borlong
--  发布时间:11/7/2006 8:12:00 AM

--  
深秋的阳光,好冷啊!!!
--  作者:computerlover
--  发布时间:11/7/2006 11:27:00 AM

--  

疑问2:

(a,b,c,d)任意加入括号可以组成多少个不同的广义表?(06年北大ds试题。)

应该是十一章广义表的内容
 下面发了下我的答案吧:
 1 (a ,(b ,c), d)   2 ((a, b, c) ,d)   3 (a, b),c d)  4 (a,(b, c, d))  5(a, b,(c, d))  只加一对括号
 6 ((a, b), (c, d))  7 (((a, b), c), d)   8 ((a, (b, c)), d)   9 (a, (b, (c, d)))
10 (a, ((b, c), d))  加两对括号.


06年真题数据结构最后一题也说的不明不白的, 处于第n个位置的数为中位数,那么在2n个数中,只有一个中位数,那又怎么求A和B的中位数?


--  作者:teng_t1986
--  发布时间:11/9/2006 7:06:00 PM

--  
以下是引用borlong在2006-10-30 19:23:00的发言:
64阶B树中,若B树包含的关键码个数是64K(64*1024),B树的节点均
放在磁盘里,每次只能从磁盘往内存中读入一个节点,查找一个给定
关键字的纪录是,最多需要进行( )次访外操作。

---------------------
请大侠给点思路,行吗?拜谢啦!


6次,根节点1个关键码,第二层31*2=62个关键码,第三层32*31*2以此类推,
第n层有2*(32^(n-2))*31个关键码,完全树
不难算出从第一层到最后一层,一共有5层,最后一层不满,但得算上,
于是:
在B树上要有5次访外,但别忘了B树的叶子是指向磁盘文件的,于是查找给定关键字一共需6次访外。


--  作者:borlong
--  发布时间:11/14/2006 7:48:00 PM

--  
以下是引用computerlover在2006-11-7 11:27:00的发言:

疑问2:

(a,b,c,d)任意加入括号可以组成多少个不同的广义表?(06年北大ds试题。)

应该是十一章广义表的内容
 下面发了下我的答案吧:
 1 (a ,(b ,c), d)   2 ((a, b, c) ,d)   3 (a, b),c d)  4 (a,(b, c, d))  5(a, b,(c, d))  只加一对括号
 6 ((a, b), (c, d))  7 (((a, b), c), d)   8 ((a, (b, c)), d)   9 (a, (b, (c, d)))
10 (a, ((b, c), d))  加两对括号.




这些不同的广义表,只能用“列举法”来一一写出来吗?
这样很容易丢失啊?如果(a,b...z)那不是要死人啊?
请问:能否用一些数学理论方法呢?
譬如:将广义表对应成“树”等或者什么的?
然后来计算不同的树的数目,这样便可以理论化了啊?
可是,郁闷的是:广义表是和树一一对应的吗?根据我的计算,不是的啊!
那么请问:大侠们,你们想到了吗???????

对不起,这些天在疯狂的看书啊!所以没有来上网。:)


--  作者:borlong
--  发布时间:11/14/2006 8:02:00 PM

--  
疑问3:
06年试题中,第三题、算法辨析题中,我想print(root)不可以打印整个森林的。
我的理由是:算法“无法”递归到森林中的另一个树上。
因为这只是对一棵连通的树进行的递归,只能深度递归一棵树而已!

修改的算法思路:可以用广度遍历森林。

我的理由对吗?请大侠指点阿。拜谢!


--  作者:borlong
--  发布时间:11/15/2006 8:29:00 AM

--  
以下是引用computerlover在2006-11-7 11:27:00的发言:


06年真题数据结构最后一题也说的不明不白的, 处于第n个位置的数为中位数,那么在2n个数中,只有一个中位数,那又怎么求A和B的中位数?
  


这道题,我想题目意思是说:当用A和B来重新组合成一个“非降序”数组时候,
求出这个新数组的中位数吧!否则,分别求出A和B的中位数,不就是重复了吗?

我的算法:
先对A和B进行归并到新数组C中,大小是2n。此时,C便有序。
直接在C选出中间的数值,即C[n]。

在这个归并的程序中,算法只是一个循环即可,所以复杂度为O(n).

可是-----什么是最坏的情况呢?有怎么算出来O(logn)呢?
这一点,我困惑。
请大侠指点


--  作者:borlong
--  发布时间:11/15/2006 8:32:00 AM

--  
以下是引用teng_t1986在2006-11-9 19:06:00的发言:

6次,根节点1个关键码,第二层31*2=62个关键码,第三层32*31*2以此类推,
第n层有2*(32^(n-2))*31个关键码,完全树
不难算出从第一层到最后一层,一共有5层,最后一层不满,但得算上
于是:
在B树上要有5次访外,但别忘了B树的叶子是指向磁盘文件的,于是查找给定关键字一共需6次访外。


拜谢teng_t1986哦。


--  作者:mxf3306
--  发布时间:11/15/2006 4:54:00 PM

--  
以下是引用teng_t1986在2006-11-9 19:06:00的发言:
[quote]以下是引用borlong在2006-10-30 19:23:00的发言:
64阶B树中,若B树包含的关键码个数是64K(64*1024),B树的节点均
  放在磁盘里,每次只能从磁盘往内存中读入一个节点,查找一个给定
  关键字的纪录是,最多需要进行( )次访外操作。

  ---------------------
  请大侠给点思路,行吗?拜谢啦!
[/quote]

6次,根节点1个关键码,第二层31*2=62个关键码,第三层32*31*2以此类推,
第n层有2*(32^(n-2))*31个关键码,完全树
不难算出从第一层到最后一层,一共有5层,最后一层不满,但得算上,
于是:
在B树上要有5次访外,但别忘了B树的叶子是指向磁盘文件的,于是查找给定关键字一共需6次访外。


指出一点: B树中是不会存在最后一层不满的情况的。


--  作者:DavidPotter
--  发布时间:11/18/2006 12:50:00 PM

--  
对于加括号,我想你在草稿纸上画画,可能就知道了。注意用一下递归的思想。 如4个分成3+1的时候就可以通过3个的结果来了。
中位数以前应该有人讲过了。我的思想就是分治法。 每次可以消除n/2^i个元素。这样消除其实是和折半查找分析是一样的。故可以达到logn
--  作者:borlong
--  发布时间:11/19/2006 4:00:00 PM

--  
以下是引用borlong在2006-11-15 8:32:00的发言:

  6次,根节点1个关键码,第二层31*2=62个关键码,第三层32*31*2以此类推,
  第n层有2*(32^(n-2))*31个关键码,完全树
  不难算出从第一层到最后一层,一共有5层,最后一层不满,但得算上,
  于是:
  在B树上要有5次访外,但别忘了B树的叶子是指向磁盘文件的,于是查找给定关键字一共需6次访外。


dear teng_t1986,您 所说的不难算出,是怎么个算法,是把根节点 加上 第二层上的节点
再加上 第三层的节点 等等 之和 小于或等于 64k 吗? 还是按照你的算法 只要最后一层节点数目 小于或等于 64k 呢?

请赐教!!
我正在迷雾中啊!


--  作者:borlong
--  发布时间:11/19/2006 4:09:00 PM

--  
以下是引用DavidPotter在2006-11-18 12:50:00的发言:
对于加括号,我想你在草稿纸上画画,可能就知道了。注意用一下递归的思想。 如4个分成3+1的时候就可以通过3个的结果来了。
中位数以前应该有人讲过了。我的思想就是分治法。 每次可以消除n/2^i个元素。这样消除其实是和折半查找分析是一样的。故可以达到logn

中位数! 是中间位置的元素(只考虑位置)。还是 元素的大小(只考虑大小)位于中间数啊?

如果考虑位置,不就是O(n),如果后者,当然是O(logn)啦。

然而 教材中推导分治法的复杂度有些复杂!
那么在考试中,如果要分析这个复杂度,也要在考试卷上写出这些过程吗?
这个问题,请大侠们赐教啊!!!!


--  作者:DavidPotter
--  发布时间:11/20/2006 6:02:00 PM

--  
当然是位置了,这也有问题么?
--  作者:borlong
--  发布时间:11/21/2006 4:19:00 PM

--  
以下是引用DavidPotter在2006-11-20 18:02:00的发言:
当然是位置了,这也有问题么?

位置????
那么复杂度不就是O(n),因为直接计算不就行啦!
至于O(logn)又是怎么理解的呢???

大家,新年快乐啊!!!!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
85.938ms