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