矩陣的快速轉置

2021-10-01 21:53:18 字數 953 閱讀 4359

#include

#include

#define ok 1

#define error 0

#define overflow 0

typedef

int elemtype;

typedef

int status;

typedef

struct

triple;

//三元組

typedef

struct

tsmatrix ;

//三元組順序表

//num[j]統計矩陣a的a.data中第j列非零元素的個數

//cpos[j]表示矩陣a的a.data中第j列的第乙個非零元在b.data中的起始位置

//矩陣a中第j列的起始位置等於第j-1列的起始位置加上第j-1的非零元的個數

status fasttransposesmatrix

(tsmatrix m,tsmatrix &t)

}free

(num)

;free

(cpos)

;return ok;

}

//這個建立粗糙無比,只是單純為了建立乙個出來驗證結果而已

status createsmatrix

(tsmatrix &m)

void

printsmatrix

(tsmatrix m)

}

int main (

)

結果

稀疏矩陣的轉置(矩陣轉置和快速轉置)

實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...

稀疏矩陣的轉置與快速轉置

假設在m n的矩陣中,有t個元素不為0。令稀疏因子s t m n 通常認為s 0.05時稱為稀疏矩陣。有時為了節省儲存空間,可以對這類矩陣進行壓縮儲存。所謂的壓縮儲存就是,為多個相同的值分配儲存在乙個空間,對零元不分配空間。而稀疏矩陣是只儲存有效值,無效值只分配乙個空間。在這裡我們用乙個順序表vec...

稀疏矩陣快速轉置

include include typedef structmatrix typedef int spmatrix 100 3 三元陣列別名 spmatrix a,b 建立兩個三元陣列,a為轉置前,b為轉置後 int pos 1000 num 1000 int getthree matrix s,i...