数据结构讲义:矩阵压缩存储与算法解析

需积分: 15 4 下载量 150 浏览量 更新于2024-08-23 收藏 1.17MB PPT 举报
"这篇清华大学数据结构讲义主要探讨了矩阵的压缩存储方法,特别是对称矩阵的存储。通过计算公式LOC(aij)=LOC(sa[k])=LOC(sa[0])+k*d,可以确定矩阵元素aij在压缩存储序列sa[k]中的位置。这个公式涉及到下标的关系,其中k=[I*(I+1)/2+J]*d,适用于任何(i, j)下标的对称矩阵元素。此外,讲义还提到了数据结构的基本概念,包括数据、数据元素、数据项和数据结构的定义,以及算法的设计和效率分析。" 在数据结构中,矩阵是一种常见且重要的数据组织形式,特别是在解决计算问题时。对称矩阵是一个特殊的矩阵,其主对角线两侧的元素相等,因此在存储时可以利用这一特性进行空间优化。讲义中提到的压缩存储方式就是针对对称矩阵的一种高效存储方法。通过将对称矩阵的上三角部分(包括对角线)按顺序排列到一个一维数组sa[k]中,可以大大减少存储空间。这种存储方式的关键在于如何根据矩阵的原始坐标(i, j)来定位到压缩存储数组中的位置。 计算公式LOC(aij)=LOC(sa[k])=LOC(sa[0])+k*d揭示了这种映射关系,其中k=[I*(I+1)/2+J]*d。这里的I和J分别代表矩阵的行和列下标,d通常代表元素之间的步长。举例来说,若矩阵元素a21和a12在sa[4]中,是因为k=2*(2+1)/2+1=4。这种存储方式简化了对矩阵元素的访问,同时也简化了矩阵操作的实现。 讲义还涵盖了数据结构的基本概念,数据结构是计算机科学中的核心概念,它描述了数据元素如何组织、存储和操作。数据可以是任何可输入到计算机并被处理的符号集合,而数据元素是这些数据的基本单位。数据项是最小单位,一个数据元素可以由多个数据项组成。数据结构则指带结构的数据元素集合,如一维数组、二维数组等,它们之间的关系可以是顺序、链接或者其他更复杂的形式。 算法是解决问题的步骤或策略,它关注的是如何操作数据结构以达到特定目标。算法设计需要考虑效率,这包括时间复杂度和空间复杂度的度量。在本讲义中,虽然没有详细展开,但算法效率分析是理解和优化算法性能的关键,这对于编写高效的计算机程序至关重要。 通过上述内容,我们可以看到数据结构和算法在程序设计中的重要性,它们共同构成了程序的基础。无论是数值计算还是非数值计算的问题,选择合适的数据结构和设计有效的算法都是解决问题的关键。讲义中的例子,如求整数数组的最大值、计算机对弈以及数据库管理,都展示了数据结构和算法在实际问题解决中的应用。