binary-search

    0熱度

    2回答

    我寫了一個遞歸函數來檢查數組的大小來檢查數組的階數n,如果是按升序排列: bool sortedAscending(const int*x, int n){ if (n == 0) return true; if (x[n - 1] >= x[n - 2]) sortedAscending(x, n - 1); else return false; } 我想要做同樣的工作但使用二進制搜

    0熱度

    1回答

    我有一個大的MySQL表與排序的數據。當我需要找到起點時,我執行二分查找以找到下界ID(自動增量)。唯一的問題是一旦刪除了一些數據,如果算法給出的ID不存在,我需要查看第一個具有較低ID的現有行。我應該如何修改此代碼以實現這一目標? $l = 1; $h = $max; //SELECT MAX(id) while ($h - $l > 1){ $m = ($h + $l)/2;

    0熱度

    1回答

    因此,對於課堂,我負責創建一個AVLTree,它可以添加/刪除節點並以特殊方式打印所有節點。我完成了這個。 Eveyrthing在我的本地計算機上正常工作。但是,當我將代碼上傳到在線提交服務器並使用命令行輸入進行測試時,我的一個功能停止工作,我希望有人能解釋爲什麼。 這是我在我的電腦主要方法: AVLTree avl = new AVLTree(); avl.insert(5, "e

    1熱度

    1回答

    您可以在時間複雜度爲O(logN)的已排序鏈接節點(對象)列表上執行二分搜索嗎?我知道鏈表不支持直接索引,所以你不能像list [3]或list.get(3)那樣做,所以基本上你需要迭代列表中的所有元素來找到索引中間元素。但是如果你有一個額外的數據結構,比如HashMap(key = index,value = node)呢?這可以工作嗎? 例子: 比方說,我們有名單: 1 -> 4 -> 7 -

    0熱度

    1回答

    設計一個具有至少20個整數數組的應用程序。它應該調用一個使用順序搜索算法的模塊來定位其中一個值。模塊應該保持它所做比較次數的計數,直到它找到值。然後程序應該調用另一個使用二進制搜索算法找到相同值的模塊。它也應該保持它所做比較的次數。在屏幕上顯示這些值。 我已經有順序搜索正常工作,並顯示它找到所需的值的迭代次數。但是,我在使用二分查找模塊時遇到了問題。每次搜索一個值時,它總是返回值1.這是我排除順序

    1熱度

    1回答

    我一直在思考和尋找這個問題的解決方案,發現這對wikipedia 的解決方案建議以完成時間找到活動< = i的開始時間。 但是,考慮下面的例子: 起動時:[1,2,3,4,5] 結束時:[3,4,5,6,7] 各自重量:[13,5,2,4,1] 對於這個例子,當我在活動:(4-6),我會有2個活動的結束時間少於4,所以,我們不應該通過二分搜索來搜索數字,而應該返回一個數組,然後從中獲取最大值。 如

    3熱度

    3回答

    我有一個值增加到最大值然後再減少值的列表(它是一個觀察到的高斯/鐘形分佈)。 values = [0, 4, 5, 15, 30, 20, 10, 5, 0]; 但分佈也可以轉移: values = [0, 0, 0, 1, 2, 3, 8, 15, 30]; 或類似的: values = [30, 20, 5, 2, 1, 1, 0, 0, 0]; 在一個特定的指標判定值是在這個特定

    -1熱度

    1回答

    這是一個相對較大的項目,但我會盡力在這裏提供所有必要的東西。 /** Removes the record with Key k from the dictionary. It throws a DictionaryException if the record is not in the dictionary. */ public void remove(Key k) throws

    1熱度

    2回答

    我有一個向量pairs。假設它是這樣的: vector<pair<int,int>> vec = { {1,12}, {1,5}, {1,6}, {1,9}, {3,9}, {3,11}, {3,13}, {3,4}, {5,9}, {5,91}, {13,8}, {16,8}, {20,8}, {20,81} }; pairs按第一個元素排序。 給定一個pair,我需要找到向量的最後一個pa

    0熱度

    2回答

    編輯:包括改進的代碼。 我目前的邏輯不正確。我想要一個可以找到整數「wantToFind」的二分法搜索,如果它不在數組中,將從wantToFind中減1,直到找到它。 我已經從一個較大的程序中減去了這個值,這保證了數組中的第一項將是最低的wantToFind(我們希望找到的值)。 然而,儘管下面的二進制搜索公約的程序還是會被尋求更高的數字,如88 float list[15] = {60,62,6