真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c++對(duì)稱矩陣的壓縮存儲(chǔ)-創(chuàng)新互聯(lián)

對(duì)稱矩陣

創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、微信小程序、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!

對(duì)稱矩陣及對(duì)稱矩陣的壓縮存儲(chǔ)

設(shè)一個(gè)N*N的方陣A,A中任意元素Aij,當(dāng)且僅當(dāng)Aij == Aji(0 <= i <= N-1 && 0 <= j <= N-1),則矩陣A是對(duì)稱矩陣。

以矩陣的對(duì)角線為分隔,分為上三 角和下三角。

壓縮存儲(chǔ)稱矩陣存儲(chǔ)時(shí)只需要存儲(chǔ)上三角/下三角的數(shù)據(jù),所以最多存 儲(chǔ)n(n+1)/2個(gè)數(shù)據(jù)。 對(duì)稱矩陣和壓縮存儲(chǔ)的對(duì)應(yīng)關(guān)系:

下三角存儲(chǔ)i>=j,

SymmetricMatrix[i][j] == Array[i*(i+1)/2+j]

int a [5][5]= { {0,1,2,3,4},

                {1,0,1,2,3},

                {2,1,0,1,2},

                {3,2,1,0,1},

                {4,3,2,1,0},};

程序代碼:

#pragma once
 
template
class SymmetricMatrix
{
public://初始化與聲明順序保持一致
SymmetricMatrix(const T*a, size_t N)//二維數(shù)組改成一維數(shù)組用傳參
:_a(new T[N*(N + 1) / 2])
, _n(N)
{
size_t index = 0;
for (size_t i = 0; i < N; ++i)
{
for (size_t j = 0; j < N; ++j)
{
if (i >= j) //上三角
{
_a[index++] = a[i*N + j];
}
else  //否則下三角 
{
break;  //break之后執(zhí)行次數(shù)少
}
}
}
}
 
void Display()//展示
{
for (size_t i = 0; i < _n; ++i)
{
for (size_t j = 0; j < _n; ++j)
{
if (i >= j)
{
cout << _a[i*(i + 1) / 2 + j] << " ";
}
else
{
cout << _a[j*(j + 1) / 2 + i] << " ";
}
}
cout << endl;
}
cout << endl;
}
 
T& Access(size_t i.size_t j)
{
if (i < j)   //上三角
swap(i, j);  //交換成下三角
 
return _a[i*(i + 1) / 2 + j];
}
 
protected:
T* _a;   //一維數(shù)組 對(duì)稱軸也要存
size_t _n;//只是聲明  并沒有定義
};
 
void Test1()
{
int a[5][5] =
{
{ 0, 1, 2, 3, 4 },
{ 1, 0, 1, 2, 3 },
{ 2, 1, 0, 1, 2 },
{ 3, 2, 1, 0, 1 },
{ 4, 3, 2, 1, 0 },
};
SymmetricMatrix sm((int *)a, 5);
sm.Display();  //類  壓縮存儲(chǔ)
}
 
#include
using namespace std;
#include
#include"Matrix.h"
 
int main()
{
Test1();
system("pause");
return 0;
}

運(yùn)行結(jié)果:

0 1 2 3 4

1 0 1 2 3

2 1 0 1 2

3 2 1 0 1

4 3 2 1 0

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。


本文名稱:c++對(duì)稱矩陣的壓縮存儲(chǔ)-創(chuàng)新互聯(lián)
本文來源:http://weahome.cn/article/djpegs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部