divide-and-conquer

    0熱度

    2回答

    我在嘗試使用分而治之的算法時遇到問題。 鑑於未排序陣列Ťv []發現DE v [k]的該數組的元件如同陣列排序但不排數組v。 例如,如果K = 3和V = {2,-1,-6,7,4}該數組的第k元素爲。 由於我不能編輯傳遞的數組,我想不出另一種方式來排序數組而不保存在另一個局部變量上,或者嘗試像快速排序一樣分割數組,並返回最後一個元素的位置v應該是。 如果有幫助,這是我的代碼: public st

    1熱度

    1回答

    我想在數組中找到一個「峯值」(a1 ai + 1> ...> an的值,這裏ai是峯值)。我在這裏使用分治法來獲得更優化的解決方案。對於「6 1 3 50 70 100 48」,它會打印出好的「70 100 48 4」(70 < 100和100> 48),但它不返回Integer.toString(a [m]),它返回「陣列沒有高峯「。我試圖刪除字符串和int工作,但我得到完全相同的問題。 pub

    1熱度

    3回答

    將兩個排序的連續數組數組合併到一個數組中。 這兩個陣列都有不同的數字。 ex : {1, 2, 3, 4, 5, 6, 7, 8, 9} and {10, 11, 12, 13, 14} int[] resultArr = {10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9}; ^ 查找起點索引的算法。如果我們把它當作循

    0熱度

    1回答

    我想檢查給定數組A中2個數字(a和b)的總和是否爲O(nlogn)中的x。我寫了下面的代碼,但它看起來不能正常工作。這是爲什麼? bool flag = false; int pairDivideEtImpera(int A[], int left, int right, int x) { if (left == right) return A[left];

    0熱度

    1回答

    我試圖使用mergesort對數組的索引進行排序。 mergesort完美地工作,最終的答案是完全正確的,但我不確定爲什麼索引不能在正確的位置上工作。我不想對數組排序,我想要做的就是對索引列表perm []數組進行排序。 爲了避免混亂,下面有一個例子: 燙髮數組保持原始數組NUMS []的初始索引(即,0至nums.length - 1) 我要移動的索引燙髮陣列中基於nums []數組中的數據,以

    0熱度

    1回答

    我一直在研究和嘗試解決3SAT使用蠻力和N.D.M,但不能這樣做。任何人都可以向我詳細解釋這些,並告訴我使用蠻力和N.D.M解決3SAT的基本算法?謝謝

    2熱度

    1回答

    我給出了一個具有不同元素的排序數組。 返回true if A[i] = i else return false; 我需要的只是返回true或false,而不是位置。 我已經實現了代碼,但有一些小錯誤。 private static boolean find(int[] a, int low, int high) { System.out.println(Arrays.toStrin

    1熱度

    1回答

    我似乎無法弄清楚爲什麼我在下面突出顯示的行上編譯時出現錯誤消息。該錯誤信息是「ValueError異常:需要比2點的值更解壓」 ...預先感謝您的幫助 def divConHelper(array, first, center, last): sumRight = float('-inf') #assign impossibly low number sumLeft = flo

    0熱度

    1回答

    這是理解分而治之算法的練習題。 給出一個N個排序整數的數組。除了一個 元素重複兩次以外,所有元素都是不同的。設計一個O(log N)算法來查找該元素。 我相信,我得到的數組需要被分割,看看是否在下一個索引中找到了相等的對應元素,這是二進制搜索的一些變體。但我找不到任何解決方案或指導。

    0熱度

    1回答

    所以我花了相當多的時間努力去理解我的代碼有什麼問題。我有一個例子程序,我比較了我的工作。我的代碼的結構不同(按照我的教授的要求,所有代碼均採用一種方法)而不是示例(使用兩種方法)。我應該創建一個遞歸的分而治之的解決方案來計算int數組中的倒數。 我迷失了爲什麼示例程序在整個遞歸過程中保持對輸入數組的操作,而我卻沒有。我知道Java是通過價值的,所以我很困惑爲什麼這個例子有效。任何幫助我瞭解這些解決