2个回答
展开全部
对具有n个元素的有序数组进行二分法查找,要分析的比较次数,可以使用画二叉判定树的方法来分析。该二叉判定树的高度为[log2(n)]+1层,此即为二分查找的最多比较次数,比如:n=1000,则最多比较[log2(1000)]+1=9+1=10次。
如果要计算平均的比较次数,则需要对二叉判定树中的每个节点进行分析,处于第一层的比较1次,第二层的比较2次,第三层比较3次,依次类推……把各个节点的比较次数累加,再处于节点数(元素个数)即为平均比较次数,这里假设查找是在等概率的情况下进行的。
举个例子:有9个元素的有序数组,对每个元素按1,2,3...8,9进行编号,则其二叉判定树如下:
图中可以看出,如果要找的元素处在第5个位置,则只要1次比较即可找到,若找第9个元素,则需要4次比较,算法分别比较了第5,7,8,9等4个元素。所以,平均的比较次数大概如下:
这样分析,能看懂吗?希望能帮到你!
更多追问追答
追问
你有那个数据结构和算法的皮皮替可不可以发给我呢?
追答
对不起,这个ppt是内部资料,不能随便外传的!
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
令在a[i]~a[j] (j-i=n-1) 这n个有序的元素中查找元素x的查找次数为f(n),则:
f(n)=1 若中点查找匹配 (a[m]=x , m=(i+j)/2)
=f(n/2)+1 若中点查找不匹配,a[m]!=x
其中的/为整数除法
最多查找次数为f1(n)=┏Log2(n+1)┓ (向上取整)
f(n)=1 若中点查找匹配 (a[m]=x , m=(i+j)/2)
=f(n/2)+1 若中点查找不匹配,a[m]!=x
其中的/为整数除法
最多查找次数为f1(n)=┏Log2(n+1)┓ (向上取整)
更多追问追答
追问
能不能用笔写一写,然后照一张相,发给我,谢谢你~~
……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询