對稀疏矩陣的理解

1.爲什麼稀疏矩陣要按行排序?
單就轉置來說,如果是非快速轉置,那麼按行排序的好處是,轉置後列的順序無誤,即原稀疏矩陣,行在前,同一列的情況,在轉置時,因爲是對列掃描,自然要從第一列開始找,(原矩陣列轉變後,成爲行。所以要從列開始找)原矩陣,行在前的元素先被掃描,自然先被排序,即掃描轉置後同行內,列的順序無誤。而在轉置時,按原矩陣列從1開始,轉置後自然按行排序。
按行優先的原則,同行內,列有序。如按列優先的原則,則應是同列內行有序。轉置時,對原矩陣的行進行掃描,將行轉化爲列。
2爲什麼不用鏈式?鏈式的三元組並不佔優勢,鏈式的三元組,需要靠指針動,檢索原三元組列排序,如果時單向鏈表,一個指針則會造成對當前位置的移動,可能會造成後面數據斷鏈或被一同移動,必然需要兩個指針,一個指針要指向被移動結點的前一個位置,保證不斷鏈。
總結:
三元組實際上將矩陣降了一個維度。使得它變爲一維的數據。就是說將行,列,及數據打包在一起,使之成爲一個大數據項。
降維,降次是簡化問題的好方法。
對於算法的優化,有時候可以考慮增加一定的輔助量,來減少循環嵌套。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章