sasadong 发表于 2006-6-19 00:32

我出个题目。大家比试一下设计?

你用过紫光吗?

我们这个问题就是使用紫光作为我们的比试对象。首先,紫光的词库具有以下的缺陷:
1,其设计有问题,导致词库在超过一定规模后就工作不稳定,http://www.hubeiyouth.com/bbs/dispbbs.asp?boardID=6&ID=5&page=1
题目要求是起码支持4GB大小的词库文件而能正常工作。
2,其次,紫光的词组只能是由2-9个字组成,题目要求是支持1-无限长的词组。
3,支持中英文混排,即一个词组可以被设定由中文和英文组成。这个特性紫光是不支持的。
4,性能,不能太慢。


要求给出算法和存储结构,不必写程序,大家开动一下脑筋。

我自己已经有了方案,就当我是擂主吧。挑战一下师弟师兄们。来吧,施主。

iptton 发表于 2006-6-19 00:54

不懂……

顶下……=WOOL HJACK来打吧高僧

wool王 发表于 2006-6-19 09:42

楼主的意思是?给出输入法的算法和存储结构?

sasadong 发表于 2006-6-20 16:41

人气不高啊。作废了。

iptton 发表于 2006-6-20 16:55

不是人气不高……

    是水平不高……

水平高的又不浮头

浮了头又潜下去……

呵呵

[ 本帖最后由 iptton 于 2006-6-20 17:01 编辑 ]

sasadong 发表于 2006-6-20 17:21

原帖由 iptton 于 2006-6-20 16:55 发表
不是人气不高……

是水平不高……

呵呵


呵呵,其实,是我们钻牛角尖了,一定要把每个题目都想复杂了,想高级了才能体现知识的深度么?

我提示一下:

你用过紫光吗?

1,其设计有问题,导致词库在超过一定规模后就工作不稳定,http://www.hubeiyouth.com/bbs/dispbbs.asp?boardID=6&ID=5&page=1
题目要求是起码支持4GB大小的词库文件而能正常工作。
4GB恰好是32位的大小,即我们使用标准的4个字节无符号整数作为地址则可以保证寻址空间达到4GB,如果题目要求超过4GB就用5字节,6字节......
另一个必要条件是要用链表,紫光之所以在词库达到一定规模就出问题,估计在某些结构使用了数组,它这样的目的是为了性能考虑的。

2,其次,紫光的词组只能是由2-9个字组成,题目要求是支持1-无限长的词组。
从紫光的这个特性可以猜出紫光结构对词组的支持是使用等长数组,即把相同长度的词放在一起使用数组,这样可以使用定长的特性(即数组)加速搜索算法。缺点是对变长的词组支持不够。
同样,我们使用链表即可。


3,支持中英文混排,即一个词组可以被设定由中文和英文组成。这个特性紫光是不支持的。
从这个猜出紫光在设计的当初没有考虑这个情况,其核心算法是先完成拼音编码到汉字内码的转换,然后再在词库搜索出词组。从而导致我们无法记住“编号9527”这个绝世词组。


4,性能,不能太慢。
由于使用了链表替换了紫光使用的数组结构,那么剩下的就必须考虑一下什么样的链表结构才是性能好的。
一个首字索引数组是必不可少的。
然后剩下的结构中要用链表,至于是AVL树还是最佳搜索二叉树那是个人有个人看法了

powerwind 发表于 2006-6-20 17:31

说实话,没有用过紫光!
看不明!

gyCai 发表于 2006-6-21 03:23

对这方面不熟悉,不知道该怎么做。

jasmine 发表于 2006-8-5 08:58

好问题
做设计就要从实际问题考虑吧
否则就不见提高吧
可惜我还不会
页: [1]
查看完整版本: 我出个题目。大家比试一下设计?