二分法比較次數,二分法查詢最壞情況下需要比較次數,為什麼n次和O(log(2)n)都對呢?後者是什麼意思

2022-04-11 16:42:55 字數 1847 閱讀 3740

1樓:匿名使用者

最壞比較4次,那個答案(log2n+ 1)下取整 或者(log2 (n + 1) )上取整,就是這個表長的最壞情況下的比較次數,如果二叉樹的層次從1 開始,則長度為n的有序順序表進行二分查詢,其最壞情況下需要的比較次數等於同樣結點個數的完全二叉樹的高度

2樓:匿名使用者

二分法檢索要求線性表結點按關鍵碼值排序且以順序方式儲存。在查詢時,首先與表的中間位置上結點的關鍵值比較,若相等則檢索成功;否則根據比較結果確定下一步在表的前半部或後半部中繼續進行。二分法檢索的效率較高,設線性表有n個元素,則最多的檢索次數為大於log2 n 的最小整數,最少的檢索次數為1。

二分法檢索又稱折半檢索,二分法檢索的基本思想是設字典中的元素從小到大有序地存放在陣列中,首先將給定值key與字典中間位置上元素的關鍵碼比較,如果相等,則檢索成功;否則,若key小,則在字典前半部分中繼續進行二分法檢索,若key大,則在字典後半部分中繼續進行二分法檢索。這樣,經過一次比較就縮小一半的檢索區間,如此進行下去,直到檢索成功或檢索失敗。二分法檢索是一種效率較高的檢索方法,要求字典在順序表中按關鍵碼排序

二分法查詢最壞情況下需要比較次數,為什麼n次和o(log(2)n)都對呢?後者是什麼意思

3樓:匿名使用者

後者是演算法複雜度的意思

n次是正確的嗎?應該是log(2)n次才對啊

4樓:匿名使用者

用二分法查詢最多log2^n

用順序查詢最多是n次

5樓:野馬皇上

順序查詢需要比較n次,二分法查詢需要比較log²n次

在含有100個有序元素的陣列中利用二分法查詢時,最大的查詢次數是( )

6樓:匿名使用者

a 7次

因為有序 你可以每次挑陣列的最中間乙個數

大於查右邊 小於查左邊

不滿足的直接忽略 每次都刪掉一半

7次就夠了

ps:這個問題應該放在程式設計設計裡面問的

用二分法查詢乙個已知順序的數列中的乙個數最壞的情況下需要查詢多少次?

7樓:匿名使用者

最壞情況下的查詢次數是(log2(n+1))的取整。最壞情況下查詢到最後單個元素才查詢結束,因為每次查詢取半,所以需要查詢(log2(n+1))的整數次。

在順序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查詢12,所需的關鍵碼比較的次數為( )

8樓:匿名使用者

首先我們查詢來到的是源15,然後15與12比較,15>12;則進行第

bai2次查詢,查詢到的是7,繼續du比較,zhi7<12;再進行dao第3次比較,查詢到的是10,由於還是小於,則繼續查詢到的是14,又大於12,此時查詢完畢,沒有12,所以最後比較的次數為4次

設有序表中有1000個元素,則用二分查詢查詢元素x最多需要比較【 】次.

9樓:

比較10次。

1個元素的時候比較1次

2~3個元素比較2次

4~7個元素比較3次

8~15 416~31 5

32~63 6

64~127 7

128~255 8

256~511 9

512~1023 10

就是log2n取整後 +1

c語言二分法查詢,C語言二分法查詢

鷹弈 include 不用math標頭檔案 void main hing和low賦初值 scanf d k while high low printf no return if語句去掉 我已經匿名了 include include void main scanf d k high 9,low 0 初...

數學中用二分法求函式零點怎麼求

先確定零點的範圍,如零點在區間 1,2 上第一步 求出區間 1,2 的中點,得1.5,那麼將1和1.5代入原函式式中。如果結果是異號,第二步 繼續求出區間 1,1.5 的中點,並將1和該中點值代入原函式式中 如果結果是一正一負則繼續重複第二步。如果結果同號,則繼續求出 1.5,2 之間的中點,重複第...

資料結構有長度為12的有序表,按二分查詢法對該錶進行查詢,在表內個元素等概率情況下,查詢成功所需

畫棵有12個元素的完全二叉樹就行了,不用關心具體的數字是哪個 37 1 1 2 2 3 4 4 5 畫個二叉樹,答案就出來了 37 1 1 2 2 3 4 4 5 答案為37 12。b 求幾道資料結構選擇題答案?以下 1 c2 d 3 c4 c 5 b o log2n d o log2n 6 b7 ...