百科定義:在壹個矩陣中,如果值為0的元素個數遠遠多於非零元素個數,且非零元素分布不規則,則稱為稀疏矩陣;反之,當非零元素個數占多數時,該矩陣稱為稠密矩陣。定義非零元素的總數是矩陣與上矩陣所有元素的總數相比的密度。
壹般矩陣存儲在二維數組中,但是由於稀疏矩陣中存在大量的“空”值,占用了大量的存儲空間,而真正有用的數據卻很少,在計算中浪費了資源,所以需要壓縮存儲來節省存儲空間,方便計算。
壹般用壹個三元組的線性表來表示,可以按順序或鏈式存儲。例如,上面的稀疏矩陣由三元組表示為(1,3,1),(2,2,2),(3,1,3),(4,4,5),(5)。
成員包括矩陣的函數、列數和非零元素的集合。這個定義使用了前面提到的線性表的有序順序存儲結構和有序鏈式存儲結構。
數據結構線性表的順序存儲結構
數據結構有序線性表的順序存儲結構
數據結構線性表的鏈式存儲結構
數據結構有序線性表的鏈式存儲結構
插入時間復雜度O(t),所以總時間復雜度為o (t * t),t為非零元素個數。
更有效的換位
插入時間復雜度O(1),所以總時間復雜度O(n*t),其中n為列數,t為非零元素數。
測試類別和結果