什麼是一種算法,其與長度n計算兩個矢量之間的點積的時間和空間複雜?時間與空間矢量點積計算的複雜
回答
如果2個載體是a = [a1, a2, ... , an]
和b = [b1, b2, ... , bn]
,然後
點積是通過a.b = a1 * b1 + a2 * b2 + ... + an * bn
給出爲了計算這一點,我們必須執行n
乘法和加法(n-1)
。 (我假設這是你所指的點積算法)。
假設乘法和加法是常數運算,因此時間複雜度爲O(n) + O(n) = O(n)
。
我們需要計算過程中唯一的輔助空間是拿「局部點積到目前爲止」和計算的最後一個產品,即ai * bi
。
假設我們可以在恆定空間中保存兩個值,因此空間複雜度爲O(1) + O(1) = O(1)
。
謝謝。但我需要用n表示。所以時間複雜度將是n +(n-1)和空間2n? – 2010-09-19 01:15:24
big-theta也隱藏常量(在這種情況下,O = big-Theta)。你的意思可能是*等值*。 – 2010-09-19 01:53:13
@Alexandre C:我同意 - 在這種情況下,我提供了Big Theta。是不是暗示(雖然閱讀我的評論,這聽起來像),只是OP是否意識到這實際上是一個緊張的限制。 – Ani 2010-09-19 02:32:59
- 1. 計算時間複雜度
- 2. 時間計算複雜度?
- 3. 計算時間複雜度
- 4. 如何計算算法時間複雜
- 5. 計算中間矢量角
- 6. 計算時間複雜度示例
- 7. 計算BST節點移除的時間複雜度
- 8. 算法複雜度時間
- 9. 迴文算法的時間和空間複雜
- 10. 計算懶惰評估語言中的時間空間複雜度
- 11. 計算二維矢量的交叉積
- 12. 卷積的計算複雜度
- 13. 如何減少轉換矢量到墊的時間複雜度
- 14. 時間複雜度 - 計算算法的最壞情況
- 15. 如何計算此遞歸算法的時間複雜度
- 16. 計算峯值搜索算法(2D)的時間複雜度
- 17. 如何有效計算算法的時間複雜度?
- 18. 計算一個Recusive算法的時間複雜度
- 19. 算法時間複雜度算例
- 20. Java - 變量的空間複雜度
- 21. 使用點積來計算兩個向量之間的角度
- 22. 如何計算程序的空間複雜度
- 23. 如何計算Keras中的矢量智慧點積?
- 24. 算法的時間複雜度
- 25. 算法的BigO時間複雜度
- 26. 分析時間複雜度的算法
- 27. Fleury算法的時間複雜度
- 28. 算法的時間複雜度分析
- 29. 遞歸算法的時間複雜度
- 30. 算法的時間複雜度
你的老師探查是一個點積是一個線性時間'O(N)'操作,其中n是兩個向量的長度。這假設你考慮乘法和加法作爲恆定時間操作。技術上'*'和'+'不是固定時間。如果要吹毛求疵,並與圖靈機的時間複雜度超精密,然後隨着數字的平均長度乘以和'了'隨着數字的平均長度被添加定義'M'。複雜度變爲:'爲O(n *(平方公尺1.465)+((N-1)*日誌的(a)))',其摺疊到:'O(N * M + N *日誌的(a))'。 – 2017-03-25 03:03:18