分塊查找法怎么計算次數?
我舉其他的一組例子。我們對一維數組中存放的元素 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節點了.所以只要兩次就可以了.