稀疏数组(Sparse Array):高效压缩稀疏数据的优化方案
稀疏数组是一种针对大部分元素为默认值(如 0、null) 的二维数组设计的压缩存储结构,通过仅记录有效元素的位置和值,大幅减少存储空间和数据传输开销。本文详细解析稀疏数组的原理、转换流程、应用场景及实现代码。
稀疏数组的核心概念
适用场景
当一个二维数组中:
- 绝大多数元素是默认值(如 0、空值);
- 仅有少量元素具有实际意义(如 1、2 等非默认值)。
此时直接存储原始数组会造成大量空间浪费,而稀疏数组通过 “保留有效信息,舍弃默认值” 实现压缩。
核心思想
稀疏数组不存储默认值,仅记录:
- 原始数组的总行数、总列数;
- 所有非默认值元素的位置(行号、列号)和值。
原始数组与稀疏数组的转换
以五子棋棋盘为例(11×11 的二维数组,0 表示空位,1 表示黑子,2 表示白子),演示转换过程。