Java数据结构-稀疏数组
2015-06-10 00:22
281 查看
稀疏数组就是数组中,大部分的元素值
都未被使用(或都为0),在数组中仅有少
部分的空间使用。因此造成内存空间的浪
费,为了解决这问题,并且不影响数组中原
有的元素值,我们采用了一种压缩的方式来
表示稀疏数组的内容。
public class array06 {
public static void main(String[] args) {
int[][] Data={{0,0,0,0,0,0,0},
{0,3,0,0,0,0,0},
{0,0,0,0,0,0,0},
{1,4,0,0,0,0,0},
{0,0,7,0,0,0,0},
{0,0,0,0,0,5,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}
};
int CompressData[][]=new int[10][3];
int Index;
int i,j;
Index=0;
System.out.println("Two dimensional sparse array:");
for(i=0;i<9;i++){
for(j=0;j<7;j++)
System.out.print(" "+Data[i][j]+" ");
System.out.println("");
}
for(i=0;i<9;i++)
for(j=0;j<7;j++)
if(Data[i][j]!=0){
Index++;
CompressData[Index][0]=i;
CompressData[Index][1]=j;
CompressData[Index][2]=Data[i][j];
}
CompressData[0][0]=9; //表示这个数组有9行 7列 index个元素
CompressData[0][1]=7;
CompressData[0][2]=Index;
System.out.println("Two dimensional compress array:");
for(i=0;i<=Index;i++){
for(j=0;j<3;j++)
System.out.print(" "+CompressData[i][j]+" ");
System.out.println("");
}
}
}
都未被使用(或都为0),在数组中仅有少
部分的空间使用。因此造成内存空间的浪
费,为了解决这问题,并且不影响数组中原
有的元素值,我们采用了一种压缩的方式来
表示稀疏数组的内容。
public class array06 {
public static void main(String[] args) {
int[][] Data={{0,0,0,0,0,0,0},
{0,3,0,0,0,0,0},
{0,0,0,0,0,0,0},
{1,4,0,0,0,0,0},
{0,0,7,0,0,0,0},
{0,0,0,0,0,5,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}
};
int CompressData[][]=new int[10][3];
int Index;
int i,j;
Index=0;
System.out.println("Two dimensional sparse array:");
for(i=0;i<9;i++){
for(j=0;j<7;j++)
System.out.print(" "+Data[i][j]+" ");
System.out.println("");
}
for(i=0;i<9;i++)
for(j=0;j<7;j++)
if(Data[i][j]!=0){
Index++;
CompressData[Index][0]=i;
CompressData[Index][1]=j;
CompressData[Index][2]=Data[i][j];
}
CompressData[0][0]=9; //表示这个数组有9行 7列 index个元素
CompressData[0][1]=7;
CompressData[0][2]=Index;
System.out.println("Two dimensional compress array:");
for(i=0;i<=Index;i++){
for(j=0;j<3;j++)
System.out.print(" "+CompressData[i][j]+" ");
System.out.println("");
}
}
}
相关文章推荐
- 数据结构与算法(单循环链表_约瑟夫问题)
- 数据结构算法代码实现——循环链表、双向链表(五)
- To_10_r_100_3---求子数组的最大和
- 大话数据结构—平衡二叉树(AVL树)
- COJ WZJ的数据结构(负十八)splay_tree的天堂
- ACM常用数据结构
- 数据结构(一)---链表:
- 大话数据结构—二叉排序树
- 数据结构实验:连通分量个数
- 数据结构实验:连通分量个数 分类: 图论 2015-06-09 17:33 8人阅读 评论(0) 收藏
- 大话数据结构—顺序表、有序表、线性索引查找
- 算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。
- C++数据结构 链表的基本操作
- C++ 数据结构、算法笔试题(1)
- 数据结构之链表2
- leetcode--Remove Duplicates from Sorted Array II
- 12. C#数据结构与算法 -- 顺序栈
- 数据结构----图(邻接矩阵用法)
- tarjan算法原理介绍
- 【 数据结构】实现二叉树以及其基本操作