n 二分查找最坏情况下要找多少次?在线等

Ryoko7 2003-02-22 08:27:12

怎么算呢
...全文
2899 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
iunkown 2003-02-26
  • 打赏
  • 举报
回复
theta(n)是二叉搜索树在worstcase 下的效率,二分查找与二叉搜索树下查找不是一会事,
二分查找worstcase 因该是lgn
iunkown 2003-02-26
  • 打赏
  • 举报
回复
最坏情况下因该是theta(n),因为二叉搜索树在worstcase 就是一个list。不知我的理解是否有误?
yuchenchen2003 2003-02-26
  • 打赏
  • 举报
回复
二分查找 最坏的情况是所查的数据不在二叉排序树中.即顺着根一直查到叶子结点
即是树的高度
eion 2003-02-26
  • 打赏
  • 举报
回复 3
n个数, 比较中间的数,一次去掉一半,余下n/2个
n/2个数, 再比较中间的数,一次去掉一半,余下n/4个
n/4个数, 再比较中间的数,一次去掉一半,余下n/8个
n/8个数, 再比较中间的数,一次去掉一半,余下n/16个
n/16个数, 再比较中间的数,一次去掉一半,余下n/32个
n/32个数, 再比较中间的数,一次去掉一半,余下n/64个
n/64个数, 再比较中间的数,一次去掉一半,余下n/128个
n/128个数,再比较中间的数,一次去掉一半,余下n/256个
。。。。。。
每次余下n/(2^i)个,当最后剩下一个时,就是
n/(2^i)=1
故:
N=2^i;
所以
i=log2(N)
Riemann 2003-02-24
  • 打赏
  • 举报
回复
没必要从二叉树去考虑,仅从序列考虑就行了。
想想看,每次砍掉序列的一半,在剩下的一般序列中搜索,比较次数当然与log(2,n)等价,但不一定恰好等于,因为我们无法保证每次截去的序列恰好为原来的一半。
Isogood 2003-02-24
  • 打赏
  • 举报
回复
绝对是树的高度拉!!

应为没次都是要分的 !!
dbExpress 2003-02-23
  • 打赏
  • 举报
回复
to Ryoko7:
如果二叉树长的畸形一点,有时候它的高度会大于log2(n)
naturerythm 2003-02-23
  • 打赏
  • 举报
回复
to Ryoko7 (然) :
两者的实质是一样的.
ZhangYv 2003-02-23
  • 打赏
  • 举报
回复
条件:已排好序的数组。最坏情况是,根为数组中间的元素第(low+heigh)/2 个的二叉搜索树高度。
dbExpress 2003-02-22
  • 打赏
  • 举报
回复
sorry:

n = 2^X

so, X = log2(n)
dbExpress 2003-02-22
  • 打赏
  • 举报
回复
n = X^2

so, X = log2(n)
Ryoko7 2003-02-22
  • 打赏
  • 举报
回复
能给解释一下为什么这么算么
dbExpress 2003-02-22
  • 打赏
  • 举报
回复
log2(N)
Ryoko7 2003-02-22
  • 打赏
  • 举报
回复
不是,好像是查找一个有序数组,先从中间切开,再如此切
naturerythm 2003-02-22
  • 打赏
  • 举报
回复
二分查找就是在二叉搜索树查找。
最坏情况下即二叉搜索树的高度。

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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