2016 - 2025

感恩一路有你

二分查找最大查找次数 二分法查找的平均查找长度!~?

浏览量:1578 时间:2021-03-14 02:30:06 作者:admin

二分法查找的平均查找长度!~?

在做这类问题时,我们应该画一棵二叉树。然后把叶子补好。叶的高度是失败的搜索数。然后,总和除以叶数就是失败查找的平均长度。非叶节点是成功的,高度是搜索成功的次数,再除以非叶节点的数量是成功的平均长度。对于11个节点,二叉树的成功搜索长度为(1x1 2x2 3x4 4x4)/11=33/11,失败搜索长度为(4x8 3x4)/(84)=44/12

可以对n个元素的有序数组进行二叉搜索,通过绘制二叉决策树来分析要分析的比较数。二叉决策树的高度为[log2(n)]1级,这是二叉搜索的最大比较次数。例如,如果n=1000,则最大比较次数为[log2(1000)]1=9,1=10。如果要计算平均比较次数,则需要分析二叉决策树中的每个节点。第一级比较一次,第二级比较两次,第三级比较三次,以此类推,将每个节点的比较次数相加,然后节点数(元素数)就是平均比较次数。这里,假设搜索是在等概率条件下进行的。例如:有一个由九个元素组成的有序数组,每个元素用1,2,3。。。8, 9. 然后二叉决策树如下:如图所示,如果要查找的元素位于第五个位置,则只需进行一次比较即可找到它。如果找到第九个元素,就需要四个比较。该算法分别比较第五、第七、第八和第九个元素。因此,平均比较次数如下:你能理解这个分析吗?希望能对你有所帮助。

C语言,二分法查找次数公式怎么推导?

顺序搜索的基本思想是遍历整个列表,并将记录的关键字与给定值逐一进行比较。如果记录的关键字等于给定值,则搜索成功并找到记录。如果关键字与最后一条记录的给定值之间的比较不相等,则表中没有记录,搜索失败。

二进制搜索的基本思想是:

在有序表中,以中间记录作为比较对象。如果给定值等于中间记录的关键字,则搜索成功;如果给定值小于中间记录的关键字,则在中间记录的左半部分继续搜索;如果给定值大于中间记录的关键字,则在右半部分继续搜索中间记录的一半。重复上述过程,直到找到为止。

二分查找最大查找次数 二分查找最坏的比较次数 二分法次数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。