哈希表PK 平衡二叉树!!!!!

liulili19830401 2008-11-29 03:08:51
设计两种数据结构来查找:哈希表 平衡二叉树。哪种情况一定不能用哈希表,只用平衡二叉树!!
...全文
1268 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jqx_ah 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xinke87 的回复:]
引用楼主 liulili19830401 的帖子:
设计两种数据结构来查找:哈希表 平衡二叉树。哪种情况一定不能用哈希表,只用平衡二叉树!!

深信服笔试题 倒数第二题

哈希表:哈希表查找速度比较快,但是要耗比较多的内存。所以比较适用于对查找速度要求比较高、且内存空间足够的时候

平衡二叉树:如果想在以后用二分法查找的时候查找速度比较快的话用建立平衡二叉树的方法

内存不足的时候 最好用平衡树
[/Quote]

我就该多来论坛看看的

昨天湖大 参加了深信服的笔试~,看样子试题是没有变! 倒数2就是这个题
liulili19830401 2008-12-08
  • 打赏
  • 举报
回复
哪种情况一定不能用哈希表,只用平衡二叉树!!

"一定"让我怕怕
e_sharp 2008-12-04
  • 打赏
  • 举报
回复
UP
jeff_nie 2008-12-03
  • 打赏
  • 举报
回复
学习.
jiyanmoyu 2008-12-01
  • 打赏
  • 举报
回复
以下三种情况,很不应该用哈希方法:
1.内存不足时;
2.输入数据重复太多或哈希冲突太多时;
3.没有合适的哈希方法或数据本身就不能哈希时.(如某类型只定义了相等,大于,小于三个操作时......那你怎么去哈希呢????)
iambic 2008-12-01
  • 打赏
  • 举报
回复
当对复杂度要求严格的时候,用平衡树。
如果你不清楚复杂度的要求,或者没有什么要求,hash table往往是更好的选择。
但是——实际上,最方便的往往是最好的。
qq675927952 2008-11-30
  • 打赏
  • 举报
回复
up
xinke87 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 liulili19830401 的帖子:]
设计两种数据结构来查找:哈希表 平衡二叉树。哪种情况一定不能用哈希表,只用平衡二叉树!!
[/Quote]
深信服笔试题 倒数第二题

哈希表:哈希表查找速度比较快,但是要耗比较多的内存。所以比较适用于对查找速度要求比较高、且内存空间足够的时候

平衡二叉树:如果想在以后用二分法查找的时候查找速度比较快的话用建立平衡二叉树的方法

内存不足的时候 最好用平衡树
jieao111 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Chiyer 的回复:]
哈希表主要可以在O(1)时间内对查找对象定位,但是事实上,如果输入集合不确定的情况下,可能出现大量的冲突,虽然有很多好的哈希函数,但是随着随机输入,大量冲突还是不可避免,可能出现最差情况。所以,哈希表如果用在输入集合确定(即以后只会做查询操作)的情况下,选择合适的函数函数和解决冲突的方法(perfect hash)可以在O(1)时间内完成查找

二叉树支持动态的插入和查找,保证操作在O(height)时间,这就是完成了哈希…
[/Quote]up星语哥哥
hhyttppd 2008-11-29
  • 打赏
  • 举报
回复
学习。。。
就呆在云上 2008-11-29
  • 打赏
  • 举报
回复
这个不好说吧
哪个效率高,不是定论的
WingForce 2008-11-29
  • 打赏
  • 举报
回复
呃。。。话说那个平衡2叉树的话。。。效率很低的说,很难实现的说
所以实际运用中,只使用放宽了条件的近似平衡二叉树
星羽 2008-11-29
  • 打赏
  • 举报
回复
哈希表主要可以在O(1)时间内对查找对象定位,但是事实上,如果输入集合不确定的情况下,可能出现大量的冲突,虽然有很多好的哈希函数,但是随着随机输入,大量冲突还是不可避免,可能出现最差情况。所以,哈希表如果用在输入集合确定(即以后只会做查询操作)的情况下,选择合适的函数函数和解决冲突的方法(perfect hash)可以在O(1)时间内完成查找

二叉树支持动态的插入和查找,保证操作在O(height)时间,这就是完成了哈希表不便完成的工作,动态性。但是二叉树有可能出现worst-case,如果输入序列已经排序,则时间复杂度为O(N)
guo_xiaonan 2008-11-29
  • 打赏
  • 举报
回复
感觉用哈弗满快吧
ldhshao 2008-11-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wzg112 的回复:]
没有说一定用哪个结构,只是时间与空间消耗的选择不同,具体要看你的需要

哈希表:哈希表查找速度比较快,但是要耗比较多的内存。所以比较适用于对查找速度要求比较高、且内存空间足够的时候

平衡二叉树:如果想在以后用二分法查找的时候查找速度比较快的话用建立平衡二叉树的方法
[/Quote]
赞同你的观点。
先谢谢你!
可你也没完全回答问题。
wzg112 2008-11-29
  • 打赏
  • 举报
回复
没有说一定用哪个结构,只是时间与空间消耗的选择不同,具体要看你的需要

哈希表:哈希表查找速度比较快,但是要耗比较多的内存。所以比较适用于对查找速度要求比较高、且内存空间足够的时候

平衡二叉树:如果想在以后用二分法查找的时候查找速度比较快的话用建立平衡二叉树的方法
namewchwch 2008-11-29
  • 打赏
  • 举报
回复
先顶下 等人回答

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧