矩陣(Matrix) 與基本的陣列結構息息相關,有點類似於二維陣列,它是一個利用mxn的陣列來介紹矩陣擁有m列和n行。而一般資料結構與演算法上常用到的矩陣有四種:矩陣轉置、矩陣相加、矩陣相乘、稀疏矩陣。
範例說明
矩陣轉置
定義:設有一mxn矩陣A,可將其轉置為nxm的矩陣B,此時AB兩矩陣為行列互換關係(即A矩陣第 i 列第 j 行元素等於B矩陣第 j 列第 i 行元素)。
演算法:
舉例:
矩陣相加
定義:A,B都是mxn矩陣,將A矩陣 加上 B矩陣可以獲得一個新的C矩陣,並且此C矩陣亦為mxn矩陣。而C矩陣上第 i 列第 j 行的元素必會等於A矩陣第 i 列第 j 行的元素 加上 B矩陣第 i 列第 j 行的元素。
演算法:
舉例:
矩陣相乘
定義:A為mxn矩陣、B為nxp矩陣,將A矩陣 乘上 B矩陣可以獲得一個新的C矩陣,而此C矩陣為mxp矩陣。C矩陣上第 i 列第 j 行的元素必會等於A矩陣的第 i 列 乘上 B矩陣的第 j 行(兩向量內積)。
演算法:
舉例:
稀疏矩陣
作法:假設有一個mxn的稀疏矩陣,且其中共有k個非零元素,故準備一個二為矩陣A[0…k,0…2]。
優點:只儲存非零資料,減少記憶體空間的浪費。
還有這些特殊矩陣…,例如:上三角矩陣與下三角矩陣。
矩陣是一種常見的資料結構,它的優缺點取決於使用的場景:
優點:
缺點:
參考資料: