3
A
回答
2
nnz
:非零數字稀疏矩陣的
row_size
:矩陣行數
column_size
:矩陣列數
方法有很多種,它們的空間複雜度:
- 壓縮稀疏行(CSR) :
2*nnz + row_size
內存數量 - 壓縮稀疏列(CSC):
2*nnz + column_size
內存數量 - 座標格式(COO):
3*nnz
數量的存儲器
對於空間複雜度:
如果row_size > column_size
,使用CSC
格式,否則,使用CSR
格式。
時間複雜度:
對於CSR
格式,行會O(1)
時間進行索引,列將O(log(k))
時間進行索引,通過二進制搜索列,k
是該行的非零元素的數量。所以價值將被索引O(log(k))
時間。
對於COO
格式,值將在O(1)
時間索引。
格式細節
[1] https://en.wikipedia.org/wiki/Sparse_matrix
[2] https://software.intel.com/en-us/node/471374
0
由於矩陣是稀疏的,因此您只需要存儲填充的單元格。應該進行簡單的座標值查找。理想情況下,您應該使用快速查找的方式,如地圖O(log n)或unordered_map O(1)。
0
一種有效的方法是使用哈希映射(對於每行)哈希映射(按列索引存儲每行中的元素)。然後將能夠訪問O(1)時間的任何元素。
您可以實現所有數值算法,如加法和乘法僅通過非零元素進行迭代,這會給您更好的複雜度,然後O(N * M)其中N和M是矩陣中的列和行數。
相關問題
- 1. 稀疏矩陣存儲格式 - 轉換
- 2. 關於CRS稀疏矩陣存儲
- 3. 稀疏矩陣存儲空間
- 4. 稀疏矩陣
- 5. 稀疏矩陣內存
- 6. 稀疏矩陣和矩陣
- 7. 以稀疏矩陣
- 8. 50Kx50K稀疏矩陣
- 9. 稀疏三元組稀疏矩陣matlab
- 10. 確定稀疏矩陣的稀疏性(Lil矩陣)
- 11. Python:如何使用python存儲稀疏矩陣?
- 12. 徵:如何初始化一個稀疏矩陣與一些子稀疏矩陣
- 13. 本徵稀疏矩陣儲備NNZ
- 14. 將稀疏矩陣轉儲到文件
- 15. R矩陣包:Demean稀疏矩陣
- 16. python稀疏矩陣的矩陣功率
- 17. 稀疏矩陣 - 矩陣乘法
- 18. 稀疏矩陣子集密集矩陣
- 19. 組合矩陣和稀疏矩陣
- 20. 98%稀疏矩陣的矩陣完成
- 21. Boost稀疏矩陣內存需求
- 22. 稀疏矩陣切片內存錯誤
- 23. 連續稀疏矩陣Eigen
- 24. 反相稀疏矩陣
- 25. 切片稀疏(scipy)矩陣
- 26. scipy稀疏矩陣分裂
- 27. 點產品稀疏矩陣
- 28. java稀疏矩陣問題
- 29. 稀疏矩陣命令
- 30. 朱莉婭稀疏矩陣
但是我需要使用一個鏈表和陣列。 – sayhello
使用鏈表或數組會給你O(n)時間 - 對於較小的n值而言,速度較慢但肯定是成立的。如果你可以排序你的數組,你可以執行二進制搜索,可以在O(log n)時間完成。 – doron