divide-and-conquer

    -3熱度

    1回答

    給定一個未排序的數組,查找最大值和最小值。我試圖以遞歸,分而治之的方式來做到這一點,但我不斷收到堆棧溢出錯誤。我調試,我不斷收到我的遞歸調用中的錯誤,但不知道什麼是錯的或如何解決它。 我確實有最小和最大的靜態變量。 感謝您的信息和幫助! static void findMaxMin(int[] array, int start, int end) { if (end == 2)

    -1熱度

    1回答

    我正在處理一個非常具體的分而治之的算法,它總是將一個有n個元素的問題劃分爲n/2-1和n/2 + 1個元素的兩個子問題。 我很確定時間複雜度仍然是O(n log n),但我不知道我怎麼能正式證明它。

    0熱度

    1回答

    我試圖使用python實現與歸併計數版本計數倒置,這裏是我的代碼: def merge(inLeft, inRight): inversions = 0; output = [] while 0 < len(inLeft) and 0 < len(inRight): if inLeft[0] < inRight[0]: output.append(in

    1熱度

    1回答

    所以我試圖打印最大總額以及其相應的子列表,但我無法弄清楚如何得到它的子列表。這裏是我到目前爲止的代碼使用Python,只有返回最大總和: full = [7,-1,1,2,-8,1] indices = [] def sumHelper(listnum, a, z): if a == z: global indices return listnum[a]

    0熱度

    2回答

    我想計算Θ() Given T (n) = T (n − 1) + n^3 我不能直接申請碩士定理規則,因爲我不知道什麼是B,所以如何導出Θ()?

    1熱度

    1回答

    上下文:不同整數的數組A [1..n]被稱爲交換排序如果有一些k, 1≤k≤n,以便移動A的最後n-k個元素(按它們在A中出現的順序)在A的前k個元素之前產生排序數組。 (請注意,不同整數的排序陣列是交換排序的: 需要k = n。)另外,交換排序的陣列必須位於增加順序。 示例:[4,5,6,1,2,3] =>將[1,2,3]向前移動到[1,2,3,4,5,6],其中被認爲是交換排序的。 (升序)

    0熱度

    1回答

    我在查找OCaml中典型指數函數的更快版本時遇到了問題。這裏有一些指引,我試圖遵循: 不是的expt b n ==> b * (b * (b ...)典型的遞歸指數版本的函數接收兩個參數B和N,基本上採取分而治之的立場。 如果n爲偶數,則fastexpt b n => (b^(n/2))^2否則,如果n是奇數則fastexpt b n => b * (b^(n - 1)) 下面是我迄今編寫的代碼:

    1熱度

    1回答

    我學習的分而治之在Coursera的算法,我也遇到過這樣的復發關係: T(n) = T(n-√n)+1 答案給出的是: O(√n) 我已經學會了掌握方法和復發樹分析,但我不知道如何分析這種復發的關係。 感謝您的幫助。

    0熱度

    1回答

    我想創建一個分而治之的算法,當在二叉樹的根上運行時,返回樹中或其他樹中包含的最大平衡二進制子樹的大小單詞,可能葉子都在同一深度的最大子樹的大小。

    0熱度

    2回答

    我非常困惑。 一個測驗題是「真或假,快速排序實現在算法的征服階段排序」因爲我記得讀我選擇了正確的: 三個步驟快速排序如下: 除法:重新排列元素並將數組拆分爲兩個子數組和中間元素,以便左側子數組中的每個元素小於或等於中間元素,並且右側子數組中的每個元素都大於中間元素。 征服:對兩個子陣列進行遞歸排序。 組合:無。 然而,答案的猜謎說,答案是沒有任何解釋假... 由於文字書說,快速排序如下分而治之算法