二分查找次数是怎么算的啊?如:123456要查找5,要几次啊,这是怎么算的啊?

二分查找次数是怎么算的啊?如:123456要查找5,要几次啊,这是怎么算的啊?请最好写出每次查找的结果,像冒泡法那样,写出每次交换的次序。

我举其他的一组例子。我们对一维数组中存放的元素 15 23 38 47 55 62 88 95 102 123 这十个数用二分法查找元素 95 要用到二叉树构建的方法. 如果查找数组元素个数是偶数n=10,那就将(n+1)/2=5.5,这里有向上取整和向下取整两种方法,我用向下取整这种方法解释下。5.5向下取整就是5,所以数组的第五个元素 55 作为二叉树的根节点.这时数组分为了两堆.15 23 38 47和
62 88 95 102 123.还是同样的方法15 23 38 47 这一堆的中间元素是(4+1)/2=2.5向下取整就是元素23,而62 88 95 102 123这一堆本来就是奇数,所以直接将95作为他们的中间元素,此时的左边一堆的中间元素 23 和右边一堆的中间元素 95分别作为刚刚原数组中间元素55这个根节点的左子树和右子树。然后又将元素分成了 15(以23作为中间元素的左边一堆)和38 47(以23作为中间元素的右边一堆) 和62 88(以95作为中间元素的左边一堆) 和102 123(以95作为中间元素的右边一堆)这四堆。分别取四堆的中间元素,15 、38、62、102.其中15和38分别作为节点23的左、右子树,而62和102作为节点95的左、右子树。然后就该是八堆了.但是15只有一个元素所以他就只是叶子节点了,38 47取走38后只剩47所以47作为节点38的子树寄叶子节点,右边62 88取走62后剩88作为62的叶子节点,102 123取走102后只有123作为他的叶子节点。现在要查找95这个元素.第一次访问根节点55,然后第二就可以访问根节点的右子树95节点了.所以只要两次就可以了.
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-20
按黑色星期天那个方法化成二叉树,要查找的元素在第几层,就是要查找几次
第2个回答  2013-07-01
俩次
相似回答