数据结构C语言>数组>压缩二维数组

本文介绍了一个二维数组(稀疏矩阵)的压缩实现方法。通过遍历原始数组并记录非零元素的位置和值来减少内存占用。最终输出压缩后的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维数组里,有大部分空间没使用,为了增加数组内存的使用效率,我们要压缩它。

嗯,上代码

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main(int argc, char *argv[])
 5 {
 6   int sparse[5][10]=    {0010000000,
 7                          0009000000,
 8                          0000020000,
 9                          0000300000,
10                          0000000600 };//稀疏矩阵 
11   int compress[6][3]; //压缩数组 
12   int i,j,k;
13   k=1;
14   compress[0][0= 5;//数组sparse有5行 
15   compress[0][1= 10;//数组sparse 有10列 
16   compress[0][2= 5//数组sparse有5个元素 
17   for(i=0; i<5; i++//二维数组遍历 
18   {
19     for(j=0; j<10; j++)
20     {
21        if(sparse[i][j] != 0//元素没被使用 
22        {
23          compress[k][0= i;//存储行数 
24          compress[k][1= j;//存储列数 
25          compress[k][2= sparse[i][j];//存储元素值 
26          k++;//下一行 
27        }      
28     }       
29   }
30   for(i=0; i<6; i++)  //压缩数组输出 
31   {
32     for(j=0; j<3; j++)
33     {printf("%3d",compress[i][j]);}
34     printf("\n");
35   }
36                          
37                          
38   system("PAUSE");    
39   return 0;
40 }
41 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值