三期对称。java猜数字游戏代码字

新橙国际吧:100windows7无线网络禁用后怎样再次开启?
责任编辑:奉语蝶
在新橙国际吧存款很多次了,觉得还是不错的,所以我给一个满分吧,新橙国际吧的存款方式和大多数的娱乐城一样,不过他们有一个我觉得别的娱乐城都没有的特色,就是可以点卡支付,在我看来,点卡的支付要比所有的支付都要好弄,因为这和大家给游戏充钱一样的啊,觉得真心是不错的。
新橙国际吧:100windows7无线网络禁用后怎样再次开启?。
出轨男回归家庭了,还会和小三旧情复燃吗。桂林市那家电影院有千与千寻这部电影。新橙国际吧:100windows7无线网络禁用后怎样再次开启? 贵州余庆县离河坝镇有多远。
清华男将滑雪事故神转折为创业商机是怎么做到的。
珠宝玉器批发 价格低 质量好 哪里有。
上海岳扉发展有限公司手工活对外加工开始需要买他的产品这是真的吗?。
本文系转载,不代表参考消息网的观点。参考消息网对新橙国际吧的真实性、及时性、完整性和准确性以及其权利属性均不作任何保证和承诺,请读者和相关方自行核实。
怀孕两个月涂指甲油一次对胎儿有害吗博玉东方,大家听说过没
我要买个性价比好的手机,价格不要超过3500,必须大屏,存储至少64g,最好128g。苹果就算了5医疗保险能跨省使用吗?...
新橙国际吧锐参考
新橙国际吧阅读推荐
新橙国际吧延伸阅读
新橙国际吧延伸阅读
新橙国际吧排行榜数据结构(14)
1.对称矩阵
关于对角线对称,Aij == Aji。
下面实现:
①对称矩阵的压缩存储
②对称矩阵的访问
③对称矩阵的还原
实现代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include&iostream&
using namespace std;
template&class T&
class SymmetricMatrix
SymmetricMatrix(T* array, size_t N)
_a = new T[(N * (N + 1))&& 1];
for (size_t i = 0; i & N; ++i)
for (size_t j = 0; j & N; ++j)
if (i &= j)
_a[(i * (i + 1))&&1 + j] = array[i * N + j];
T& Access(size_t x, size_t y)
if (x & y)
swap(x, y);
return _a[(x * (x + 1)) && 1 + y];
void DisPlay()
for (size_t i = 0; i & _N; ++i)
for (size_t j = 0; j & _N; ++j)
if (i &= j)
cout&&Access(i, j)&&" ";
cout && Access(j, i) && " ";
~SymmetricMatrix()
delete[] _a;
_a = NULL;
size_t _N;
测试代码如下:
void Test()
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&int& sm((int*)a, 5);
cout && sm.Access(0, 3) &&
cout && sm.Access(3, 0) &&
sm.DisPlay();
int main()
2.稀疏矩阵:
(1)稀疏矩阵的压缩存储:
所谓稀疏矩阵的压缩存储,其实就是将稀疏矩阵中的有效元素保存起来,但由于稀疏矩阵中有效元素的分布没有规律可寻,所以需要使用一个三元组来保存其位置(row、col)以及有效值。—&三元组最好使用结构体来存储。
因为不知道矩阵中究竟有多少个有效元素(即就是不知需要多少个结构体),那么就可以使用vector(动态增长型)来保存有效元素。
template&class T&
struct Trituple
Trituple(size_t row, size_t col, const T& data)
:_row(row)
, _col(col)
, _data(data)
SparseMatrix(T* array, int row, int col,const T& invalid)
:_row(row)
, _col(col)
,_invalid(invalid)
for (int i = 0; i & ++i)
for (int j = 0; j & ++j)
if (array[i * col + j] != invalid)
_sm.push_back(Trituple&T&(i, j, array[i * col + j]));
(2)稀疏矩阵的转置:
稀疏矩阵的转置过程如下:
实现代码如下:
SparseMatrix&T& Transprot()
SparseMatrix&T&
sm._row = _
sm._col = _
for (size_t index = 0; index & _ ++index)
vector&Trituple&T& &::iterator it = _sm.begin();
while (it != _sm.end())
if ( it-&_col == index)
sm._sm.push_back(Trituple&T&(it-&_col, it-&_row, it-&_data));
3.稀疏矩阵的快速转置:
稀疏矩阵的转置的时间复杂度:(稀疏矩阵的列N*稀疏矩阵中有效元素的个数)—-》时间复杂度较大,所以引出了快速转置
稀疏矩阵的快速转置的时间复杂度(2*有效元素的个数 + 稀疏矩阵的列)
快速转置的思想如下:
代码实现:
SparseMatrix&T,N,M& FastTransport(const size_t m,const size_t n)
SparseMatrix & T, N, M&
sm._row = _
sm._col = _
sm._v.resize(_v.size());
int rows[N] = {0};
size_t index = 0;
while (index & _v.size())
rows[_v[index]._col]++;
int starts[N] = { 0 };
for (size_t i = 1; i & _ ++i)
starts[i] = starts[i - 1] + rows[i - 1];
for (size_t i = 0; i & _v.size(); ++i)
int row = _v[i]._
t._value = _v[i]._
t._col = _v[i]._
t._row = _v[i]._
sm._v[starts[row]] =
starts[row]++;
全部代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include&iostream&
using namespace std;
#include&vector&
template&class T&
struct Triple
Triple(T& data, size_t row, size_t col)
:_value(data)
, _row(row)
, _col(col)
template&class T,size_t M,size_t N&
class SparseMatrix
SparseMatrix()
SparseMatrix(T* array, const T& invalid)
:_invalid(invalid)
for (size_t i = 0; i & _ ++i)
for (size_t j = 0; j & _ ++j)
if (array[i * N + j] != invalid)
t._value = array[i * N + j];
_v.push_back(t);
void Display()
int index = 0;
for (size_t i = 0; i & _ ++i)
for (size_t j = 0; j & _ ++j)
if (index & _v.size() && _v[index]._row == i && _v[index]._col == j)
cout && _v[index]._value && " ";
cout && _invalid && " ";
SparseMatrix&T,N,M& Transport()
SparseMatrix&T,N,M& _
_sm._invalid = _
_sm._row = _
_sm._col = _
for (size_t i = 0; i & _ ++i)
size_t index = 0;
while (index & _v.size())
if (_v[index]._col == i)
t._value = _v[index]._
t._row = _v[index]._
t._col = _v[index]._
_sm._v.push_back(t);
template&class T, size_t N, size_t M&
friend class SparseM
SparseMatrix&T,N,M& FastTransport(const size_t m,const size_t n)
SparseMatrix & T, N, M& _
_sm._row = _
_sm._col = _
_sm._v.resize(_v.size());
int rows[N] = {0};
size_t index = 0;
while (index & _v.size())
rows[_v[index]._col]++;
int starts[N] = { 0 };
for (size_t i = 1; i & _ ++i)
starts[i] = starts[i - 1] + rows[i - 1];
for (size_t i = 0; i & _v.size(); ++i)
int row = _v[i]._
t._value = _v[i]._
t._col = _v[i]._
t._row = _v[i]._
_sm._v[starts[row]] =
starts[row]++;
vector&Triple&T& &
测试代码如下:
void Test()
int array[6][5] = {
{ 1, 0, 3, 0, 5 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 1, 0, 3, 0, 5 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
SparseMatrix&int,6,5& sm((int*)array, 0);
sm.Display();
SparseMatrix&int,5,6& sm2 = sm.FastTransport(5,6);
sm2.Display();
int main()
由于能力有限,又是刚开始学习数据结构,难免会有思考的不正确或是不完善的地方,欢迎大家批评指正。。。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13040次
积分:1051
积分:1051
排名:千里之外
原创:86篇
转载:11篇
评论:11条
(11)(12)(22)(3)(3)(8)(37)(5)谨慎网上交易,请勿随意给陌生人汇款!最好选择第三方担保交易付款。
联系人林先生(先生)&总经理&
电话183- 手机 地区广东-广州市
地址广州市越秀区广园西路332号新濠畔皮料广场 联系对方请说明是在【切它网】看到的信息;如果您也想和该公司一样拥有好的排名,请立即,马上发布产品!
免责声明:以上看穿普通信封袋猜数字开几号码的供应信息由企业及个人自行提供,该企业及个人负责信息内容的真实性、准确性和合法性。
“看穿普通信封袋猜数字开几号码”由切它网供应频道免费提供发布,该信息由企业(广州鼎盛牌具有限公司)自行提供,该企业负责信息内容的真实性、准确性和合法性。切它网不负任何责任!请谨慎网上交易!去投诉!(扑克,4155)
QieTa B2B SYSTEM All Rights Reserved, .}

我要回帖

更多关于 1a2b猜数字算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信