二分查找的比較次數(shù) 長度為32的有序表中進行二分查找,所需進行的關(guān)鍵字比較次數(shù)最多是多少?它的公式是什么?
長度為32的有序表中進行二分查找,所需進行的關(guān)鍵字比較次數(shù)最多是多少?它的公式是什么?比較的最小數(shù)目是1,例如[1,2,3]二進制搜索2。最大比較數(shù)為log2(n)1,向下舍入。對于有序表,根據(jù)二進制
長度為32的有序表中進行二分查找,所需進行的關(guān)鍵字比較次數(shù)最多是多少?它的公式是什么?
比較的最小數(shù)目是1,例如[1,2,3]二進制搜索2。最大比較數(shù)為log2(n)1,向下舍入。對于有序表,根據(jù)二進制搜索法的定義,每次比較后問題大小將減少一半,因此2^k=n,解為k=log2(n)。因為當最后只剩下一個元素時,搜索過程也會執(zhí)行,所以1。
C語言,二分法查找次數(shù)公式怎么推導(dǎo)?
二進制搜索對于具有n個元素的有序數(shù)組,可以通過繪制二進制決策樹來分析要分析的比較數(shù)。二叉決策樹的高度為[log2(n)]1級,這是二叉搜索的最大比較次數(shù)。例如,如果n=1000,則最大比較次數(shù)為[log2(1000)]1=9,1=10。如果要計算平均比較次數(shù),則需要分析二叉決策樹中的每個節(jié)點。第一級比較一次,第二級比較兩次,第三級比較三次,以此類推,將每個節(jié)點的比較次數(shù)相加,然后節(jié)點數(shù)(元素數(shù))就是平均比較次數(shù)。這里,假設(shè)搜索是在等概率條件下進行的。例如:有一個由九個元素組成的有序數(shù)組,每個元素用1,2,3。。。8, 9. 然后二叉決策樹如下:如圖所示,如果要查找的元素位于第五個位置,則只需進行一次比較即可找到它。如果找到第九個元素,就需要四個比較。該算法分別比較第五、第七、第八和第九個元素。因此,平均比較次數(shù)如下:你能理解這個分析嗎?希望能對你有所幫助。