对稀疏矩阵的理解

1.为什么稀疏矩阵要按行排序?
单就转置来说,如果是非快速转置,那么按行排序的好处是,转置后列的顺序无误,即原稀疏矩阵,行在前,同一列的情况,在转置时,因为是对列扫描,自然要从第一列开始找,(原矩阵列转变后,成为行。所以要从列开始找)原矩阵,行在前的元素先被扫描,自然先被排序,即扫描转置后同行内,列的顺序无误。而在转置时,按原矩阵列从1开始,转置后自然按行排序。
按行优先的原则,同行内,列有序。如按列优先的原则,则应是同列内行有序。转置时,对原矩阵的行进行扫描,将行转化为列。
2为什么不用链式?链式的三元组并不占优势,链式的三元组,需要靠指针动,检索原三元组列排序,如果时单向链表,一个指针则会造成对当前位置的移动,可能会造成后面数据断链或被一同移动,必然需要两个指针,一个指针要指向被移动结点的前一个位置,保证不断链。
总结:
三元组实际上将矩阵降了一个维度。使得它变为一维的数据。就是说将行,列,及数据打包在一起,使之成为一个大数据项。
降维,降次是简化问题的好方法。
对于算法的优化,有时候可以考虑增加一定的辅助量,来减少循环嵌套。

你可能感兴趣的:(原创,数据结构)