binary-search

    -1熱度

    3回答

    我被要求用一些特定的條件編寫一個二進制搜索程序。我必須傳遞下限,上限,指向數組的指針和搜索元素。我寫的程序給了我警告。我無法糾正程序中的錯誤。請指出我錯在哪裏。 #include <stdio.h> int BinarySearch(int , int , int *, int); int main() { int n, i, a[20], h, l, x, r=0;

    1熱度

    1回答

    我想實現一些二進制搜索,就像對隨機訪問(恆定時間)的排序元素集合進行操作的函數一樣,並且支持索引算術(用於派生一個mid點)。我可以將這些方法添加爲擴展名或Array。但是,我更願意將它們添加到支持必要功能的更通用的協議,以便我的擴展可以更廣泛地使用。 我應該使用哪種協議,以及我將來如何去尋找這樣的協議?我搜索了「Swift收集協議層次結構」和類似的內容,除了各種紅鯡魚之外,我還沒有發現任何有用的

    0熱度

    1回答

    的運行時間我想計算隨機二進制搜索以下僞代碼的預期運行時間,在那裏,而不是考慮的中點爲支點,選擇一個隨機點: BinarySearch(x, A, start, end) if(start == end) if(A[end] == x) return end else return -1 else mid = RAN

    0熱度

    1回答

    這段代碼有什麼問題?無法使用二分查找搜索連續數組中缺失的數字。 a = [1,2,3,4,5,7,8] lent = len(a) beg =0 end = lent-1 while beg < end: mid = (beg + end)/2 if (a[mid]-a[beg])==(mid - beg): beg = mid + 1 els

    0熱度

    1回答

    對於有序排列的int數組,BS算法返回鍵的前任。例如,給定數組{3,5,7,9,11},BS(15)= 11,BS(9)= 7。當前輩不存在於陣列(例如BS(3))。我認爲解決方案是二進制搜索算法的變體,但我無法得到正確的解決方案。這是我到目前爲止,這是不正確的: int BinarySearch5(vector<int> &data, int left, int right, int key)

    -1熱度

    1回答

    下面我有兩個函數,當insertItem調用findIndex時會產生分段錯誤。出於某種原因,返回值時會發生這種情況。 (我將包括cout語句,以便很容易地看到發生此錯誤的確切位置)。我試圖找到不在列表中的值的索引,因此-1應該被返回,但從來沒有。輸出如下。 template <class ItemType> int SortedList<ItemType>::findIndex(ItemTyp

    2熱度

    2回答

    我想對我試圖實施的方法提供一些反饋,但該方法不能100%工作。我正在製作一個Android應用程序,用於練習用戶獲得20個隨機字母。用戶然後使用這些字母來製作任何尺寸的字。然後它會檢查字典以查看它是否是有效的英文單詞。 給我麻煩的部分是顯示「提示」。如果用戶被卡住了,我想顯示可能的單詞。我最初認爲遞歸。但是,使用20個字母可能需要相當長的時間來執行。所以,我還實現了二進制搜索以檢查當前遞歸路徑是否

    0熱度

    1回答

    假設我們有一個100個元素的整數數組。 val a = Array(312, 102, 95, 255, ...) 我想找到陣列,其中所述第一k+1元素的累計總和大於一定閾值的索引(比如k),但是用於第一k元件較少。 由於高編號的數組中的元素的,我所估計的下部和上部的索引,其中在所述k指數之間應該是: k_Lower <= k <= k_upper 我的問題是,什麼是最好的方式找到這個k索引? 我

    0熱度

    1回答

    我有在Python使用二進制搜索 計劃1搜索兩個方案: def bin(alist,x): if len(alist)==0: return False else: mid=len(alist)//2 if (alist[mid]==x): return True else: if alist[mid]

    0熱度

    1回答

    我有一個少數重複元素的數組,我想找到重複元素的索引這最接近數組的末尾。 #include<iostream> uisng namespace std; int main() { int arr[15]={1,2,3,4,5,6,7,8,8,8,9,10,11,12,13}; // 8 is repeating 3 times // lets find the index of