如何學(xué)好算法 ]二分查找是一個(gè)有效計(jì)算平方根的辦法。()A對(duì)B錯(cuò)?
]二分查找是一個(gè)有效計(jì)算平方根的辦法。()A對(duì)B錯(cuò)?例如C<√A<B,取M1=(C b)/2,比較A和M1^2的大小,例如A>m1^2,然后把M1的值賦給C;反之,賦給b。通過(guò)上述方法,我
]二分查找是一個(gè)有效計(jì)算平方根的辦法。()A對(duì)B錯(cuò)?
例如C<√A<B,取M1=(C b)/2,比較A和M1^2的大小,例如A>m1^2,然后把M1的值賦給C;反之,賦給b。通過(guò)上述方法,我們可以得到√A的近似值
二進(jìn)制搜索算法是一種快速搜索算法。當(dāng)我們?cè)诹硪粋€(gè)數(shù)組中尋找一個(gè)數(shù)字時(shí),我們通常直接遍歷這個(gè)數(shù)組直到找到這個(gè)數(shù)字。時(shí)間復(fù)雜度為O(n)。如果有大量的數(shù)據(jù),我們可以使用簡(jiǎn)單快速的搜索算法二進(jìn)制搜索算法,也稱為半搜索算法。
二分查找和折半查找一樣嗎?
讓我再舉一組例子。
我們使用二分法為一維數(shù)組中的十個(gè)元素15 23 38 47 55 62 88 95 102 123查找元素95。如果數(shù)組中的元素?cái)?shù)為偶數(shù),n=10,則(n1)/2=5.5。有兩種向上舍入和向下舍入的方法。我用這個(gè)方法來(lái)解釋。5.5向下舍入為5,因此數(shù)組的第五個(gè)元素55用作二叉樹(shù)的根節(jié)點(diǎn)。此時(shí),陣列被分為兩堆。15233847和628895102123。使用相同的方法。15233847樁的中間元素為(41)/2=2.5,向下舍入為元素23,628895102 123為奇數(shù),因此直接使用95作為中間元素。此時(shí),左堆中的中間元素23和右堆中的中間元素95被用作原始數(shù)組中中間元素55的根節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)。然后將這些元素分為四個(gè)樁:15(左樁23為中間元素)、38 47(右樁23為中間元素)、62 88(左樁95為中間元素)和102 123(右樁95為中間元素)。取四個(gè)樁的中間元素,15,38,62,102。其中,15和38是節(jié)點(diǎn)23的左右子樹(shù),62和102是節(jié)點(diǎn)95的左右子樹(shù)。但是15只有一個(gè)元素,所以它只是一個(gè)葉節(jié)點(diǎn)。在3847取38之后,只剩下47,因此47被用作節(jié)點(diǎn)38的子樹(shù)來(lái)發(fā)送葉節(jié)點(diǎn)。在62 88取62之后,剩下88作為62的葉節(jié)點(diǎn)。在102 123取102之后,只有123被用作他的葉節(jié)點(diǎn)?,F(xiàn)在我們需要找到95號(hào)元素。我們第一次訪問(wèn)根節(jié)點(diǎn)55,然后第二次可以訪問(wèn)根節(jié)點(diǎn)的右子樹(shù)節(jié)點(diǎn)95。所以我們只需要參觀兩次