二分查找的比较次数 长度为32的有序表中进行二分查找,所需进行的关键字比较次数最多是多少?它的公式是什么?
长度为32的有序表中进行二分查找,所需进行的关键字比较次数最多是多少?它的公式是什么?
比较的最小数目是1,例如[1,2,3]二进制搜索2。最大比较数为log2(n)1,向下舍入。对于有序表,根据二进制搜索法的定义,每次比较后问题大小将减少一半,因此2^k=n,解为k=log2(n)。因为当最后只剩下一个元素时,搜索过程也会执行,所以1。
C语言,二分法查找次数公式怎么推导?
二进制搜索对于具有n个元素的有序数组,可以通过绘制二进制决策树来分析要分析的比较数。二叉决策树的高度为[log2(n)]1级,这是二叉搜索的最大比较次数。例如,如果n=1000,则最大比较次数为[log2(1000)]1=9,1=10。如果要计算平均比较次数,则需要分析二叉决策树中的每个节点。第一级比较一次,第二级比较两次,第三级比较三次,以此类推,将每个节点的比较次数相加,然后节点数(元素数)就是平均比较次数。这里,假设搜索是在等概率条件下进行的。例如:有一个由九个元素组成的有序数组,每个元素用1,2,3。。。8, 9. 然后二叉决策树如下:如图所示,如果要查找的元素位于第五个位置,则只需进行一次比较即可找到它。如果找到第九个元素,就需要四个比较。该算法分别比较第五、第七、第八和第九个元素。因此,平均比较次数如下:你能理解这个分析吗?希望能对你有所帮助。
二分查找的比较次数 二分法计算次数怎么算 二分查找法过程详解
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。