binary-search

    -1熱度

    2回答

    我已經在C語言中實現了二進制搜索的初始遞歸版本。但是,當要找到的元素位於數組的最後位置時,它似乎不起作用。有沒有辦法解決這個問題,而不改變函數的原型? #include <stdio.h> int search(int value, int values[], int n); int main() { int a[] = { 26, 27, 28 }; if (sea

    0熱度

    1回答

    對二進制搜索中的比較次數的復發關係有疑問。 我讀到復發者可= T(N/2)+ 1在該網站http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Weiss/L14-RecRel.htm 根據我應該是T(N)= T(N/2)寫爲T(n)的+ 2,因爲在最壞的情況下,元素可能不會出現在數組中,我們最終在每次傳遞中進行2次比較。 請告訴我我

    0熱度

    2回答

    對於具有單峯元素的陣列,可以使用二分搜索在o(logn)中完成,但是如果數組中存在多個峯值元素,我們應該使用哪種方法? ---把一些更多的信息---- 峯值元素的東西是大於它的鄰國,例如,看一下下面的陣列, [1,3,20,4,1 ,0,7,5,2] 有2個峯在其中,20和7 我們需要設計一種算法來找到這個陣列中的峯值的元件。

    0熱度

    1回答

    天真的二進制搜索是一種非常有效的算法:在排序數組中獲取高點和低點的中點,並相應地調整高點或低點。然後你重新計算你的終點並迭代,直到你找到你的目標值(或者你當然不會) 現在很清楚,如果你不使用中點,那麼會給系統帶來一些風險。假設你將搜索目標從中點移開,並創建兩個方面 - 我稱它們爲大方和小方。 (這種轉變是朝向高還是低,因爲它會是對稱的。)風險是,如果你錯過了,你的搜索空間就會大於它:你必須搜索大的

    2熱度

    2回答

    這是一個好的執行二進制搜索算法?它的工作原理,但是我想到了一個實現,與我的教師不同。任何人都可以爲我打洞嗎? package algorithm.linearsearch; 公共類二分查找{ public static void main(String[] args) { System.out.println(binarySearch( new int[] { 1, 2,

    0熱度

    2回答

    因此,每當我嘗試搜索A [0]元素(本例中爲23)時。它不返回元素的位置。但是,當我嘗試搜索其他元素,然後A [0]時,它工作正常。請說明代碼有什麼問題,我該如何解決這個問題。 輸出樣本 - 輸入要搜索的項目 - 23 輸出 - 在此陣列中找不到元素23。 在此先感謝! #include <iostream> using namespace std; int main(){ int

    0熱度

    1回答

    給定輸入x和數組[a1,a2,a3..an],是否有可能找到最大數目的x是factor在log(n)時間。 例如X = 2, 數組進行排序,[1,2,4,4,9,13,18], 其中x是因子這裏最大數目是18,是有可能在log(n)時間內找到18。

    0熱度

    2回答

    我想用Java編寫二進制搜索的代碼。但光標只是堆棧,不能看到任何答案。請幫我解決這個問題。我相信我寫的代碼是有道理的。不確定! public class BinarySearch { public static void main(String[] args) { int test[] = {1, 3, 5, 6}; // int ans = BinarySearch(t

    3熱度

    2回答

    我正在閱讀關於Binary search的不同材料,但我不清楚它是否是一個貪婪的二進制文件(在我看來它不是),或者它可以是一種具有某種特定實現的貪婪算法嗎? 如果它可以是貪婪的,它是如何有意義的?如果全局最優是通過選擇局部最優而獲得的,而不重新考慮先前的選擇,則它不能保證二分搜索的正確結果。

    0熱度

    2回答

    我正在嘗試使用二分查找來實現解決方案。我有 list = [1, 2, 3, 4, 6] value to be searched = 2 我寫了這樣的事情 def searchBinary(list, sval): low = 0 high = len(list) while low < high: mid = low + math.floor(