time-complexity

    0熱度

    1回答

    鑑於陣列 a[4]={2,5,8,9}; 相對於每個元件的絕對差將是 (3,6,7,3,4,1) abs(2-5)=3 abs(2-8)=6 abs(2-9)=7 abs(5-8)=3 abs(5-9)=4 abs(8-9)=1 是否有可能找到這線性時間?如果是,如何?

    0熱度

    1回答

    我就來分析這段代碼的複雜性,但我很爲IF的條件彷徨。 sum=0; for(i=1;i<n;i++){ for(j=1;j<i*i; j++){ if(j%i==0){ for(k=0;k<j;k++){ sum++; } } } } 如果「(j%I == 0)」如果條件是不存在我將能夠計算的複雜性,但我不能

    0熱度

    2回答

    代碼1 int i = 0; int j = 0; while(i < n){ while(j < n){ printf("{%d,%d}",arr[i],arr[j]); j++; } i++; j = 0; printf("\n"); } 代碼2 int result = 0; int i = 0; whi

    1熱度

    1回答

    欲計算以下遞歸算法,其中, n = j - i (size of array) i ≤ k ≤ j process(A, i, j) takes Θ(n) time Algo(Array A[], int i, int j) if (i<j) k = process(A, i, j) Algo(A, i, k) Algo(A, k+1, j)

    1熱度

    1回答

    我知道查看嵌套循環時的算法複雜度模式通常是n^(m+1),其中m是循環嵌套因子(循環內的循環)。 但對於這個簡單的例子,在那裏 for (i=0; i<n*n; i++) { ... } 是複雜O(n^2)? 因爲執行量與正常的嵌套for循環相同。

    6熱度

    3回答

    我試圖圍繞我的編碼解決方案節省時間。 我有一個名爲tripletSum功能採用兩個參數x和a其中x是一個數字,a是一個數組。 這個功能應該返回true如果列表a包含三個元素這加起來數目x,否則就應該返回false。 我創建瞭如下工作方案: function tripletSum(x, a) { for(var i = 0; i < a.length; i++) { for(v

    1熱度

    1回答

    根據這篇文章Performance of doing bitwise operations on bitsets的性能是O(n)我該如何使它O(log n)。 謝謝。

    2熱度

    1回答

    在ES6中,地圖和集合可以使用對象作爲關鍵字。但是,由於ES6規範沒有規定這些數據結構的底層實現,所以我想知道現代JS引擎如何存儲密鑰以保證O(1)或至少sublinear檢索? 在像Java這樣的語言中,程序員可以明確地提供一個(好的)hashCode方法,它將密鑰均勻地散列在密鑰空間中以保證性能。然而,由於JS沒有這樣的特性,仍然認爲他們在Maps和Sets實現中使用某種哈希算法仍然公平。 任

    0熱度

    1回答

    我已經讀過跳過列表的插入時間複雜度是(log n)的次數很高的概率,但在最壞的情況下是O(n)。但是,在閱讀redis zadd的文檔時,它在https://redis.io/commands/zadd它告訴:添加每個項目的O(log(N)),其中N是排序集合中元素的數量。 如果redis使用跳過列表,那麼在最壞的情況下zadd應該是O(n),不是嗎? ps:對不起,但我早些時候發佈了相同的問題,

    1熱度

    1回答

    我有一種方法來查找二進制搜索樹(BST)中的下一個中序繼任者。 「inorderSuccessor」方法將BST的任何節點作爲輸入並輸出下一個中間繼承者。方法和樹類的定義如下: class BSTInorderSuccessor{ public static Node inorderSuccessor(Node node) { if (node.right != null) {