稀疏数组
来源:互联网 发布:d3.js path 路径文字 编辑:程序博客网 时间:2024/05/22 08:15
二维数组:求某一元素在数组中的位置。
1、以行为主:
data[i][j]的内存位置=第一个元素的位置+[ (i * 每一行元素个数)+j ] * ( 数据类型所占空间大小)
2、以列为主:
data[i][j]的内存位置=第一个元素的位置+[ (j * 每一行元素个数)+i ] * ( 数据类型所占空间大小)
如:int data[ 5 ] [ 4 ]、 arr[ 20 ]
则 以行为主:data[ i ] [ j ] = arr[ i * 4 + j ];
以列为主:data[ i ] [ j ] = arr[ j * 5 + i ];
稀疏数组:指数组中大部分的内容值都未被使用(或都为0),仅有少部分的空间被使用,因此造成内存空间浪费,为了节省内存空间,先用一种压缩的 方式来表示稀疏数组的内容!
#include <iostream>
#include <iomanip>
using namespace std;
int Data[9][7]={{0},{0,3},{0},{1,4},{0,0,7},{0,0,0,0,0,5},{0},{0}};
int main()
{
int i,j,Index=0; //Index为压缩数组的索引值
int CompressData[10][3]; //存储压缩后数据的数组
cout<<"压缩前的数组:\n";
for(i=0;i<9;i++)
{
for(j=0;j<7;j++)
cout<<setw(3)<<Data[i][j];
cout<<endl;
}
//进行数组数据压缩
for(i=0;i<9;i++)
for(j=0;j<7;j++)
if(Data[i][j]!=0)
{
Index++; //增加数组索引值,从1开始
CompressData[Index][0]=i; //记录元素的行位置
CompressData[Index][1]=j; //记录元素的列位置
CompressData[Index][2]=Data[i][j]; //存储原数组的有效元素
}
CompressData[0][0]=9; //原数组的行数
CompressData[0][1]=7; //原数组的列数
CompressData[0][2]=Index; //使用的元素个数
cout<<"\n压缩后的数组为:\n";
for(i=0;i<=Index;i++)
{
for(j=0;j<3;j++)
cout<<setw(3)<<CompressData[i][j];
cout<<endl;
}
cout<<endl;
return 0;
}
- 稀疏数组
- 稀疏数组
- 稀疏数组或稀疏矩阵
- 链表::稀疏数组
- 稀疏数组(Sparse array)
- 稀疏数组详解
- 稀疏数组(Sparse array)
- 稀疏数组(Sparse array)
- 数组(稀疏矩阵)
- Java数据结构-稀疏数组
- SparseArray(稀疏数组)
- SparseArray稀疏数组浅析
- python 稀疏数组的处理
- Android SparseArray(稀疏数组)
- matlab生成随机稀疏数组
- cjson中的稀疏数组encode
- 6.1 6.2 数组、稀疏矩阵
- cjson中的稀疏数组encode
- ORACLE expdp与impdp用法整理及高导低版本问题的解决
- ActiveMQ入门实例
- java算法题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- c++ 类模板
- 【C++基础】类型转换运算符的使用方法(reinterpret_cast、 const_cast、static_cast、dynamic_cast)
- 稀疏数组
- vim独家秘技两条(1)在任意列中插入等差数列(非插件)(2)利用shell命令插入某个目录下的所有文件名(可用于cocos2d-x android的.mk脚本配置)(上)
- D3D中.X文件的解析
- linux文件系统剖析-留存
- OpenRisc-19-or1200下linux的i2c(一)
- Tomcat的配置文件 —— server.xml
- js + jquery 方法功能总结
- Lua 标准库 - 基本函数(base function)
- LEADTOOLS Media Foundation SDK使用方法