学习笔记:第五章 数组

第五章 数组

数组的定义与顺序存储

数组的定义:

数组A为n(n>0)个元素的有穷序列,记作A=(a1,a2,…an)

ai(1<=i=<n)或者全部为相同数据类型的原子项ei(即具体数值);或者全部为具有相同定义的数组Bi

数组A=(a1,…,an)的维度Dim递归定义为:

在这里插入图片描述

C语言:

​ 语法:ElemType arrayName[L1]…[Ln];

​ 语义:第1维长度L1,元素L2…Ln的数组。

在这里插入图片描述

数组的顺序存储:

核心问题:数组元素多维结构到一堆内存空间的映射

数组A=(a1,…,an)(n>0)顺序存储方案的递归定义:

​ 递归基础:ai为原子项ei

在这里插入图片描述

​ 递归条件:ai为数组Bi

在这里插入图片描述

C语言:ElemType A [m] [n] (低下标优先存储)

例如:

在这里插入图片描述

在这里插入图片描述

C,Basic,Pascal等语言,数组元素按照低维下标大小升序排列存放。

A为矩阵时,亦称为按行优先存储。

二维数组A中任一元素a(i,j) 的存储位置:LOC(i,j) = LOC(0,0) + (b2×i+j)×L Loc(i,j)为基地址或基址

Fortran:ElemType A (m,n) (高下标优先存储)

在这里插入图片描述

在这里插入图片描述

Fortran语言,数组元素按照高维下标大小按次序存放。

A为矩阵时,亦称为按列优先存储。

数组的基本操作:
初始化: InitArray(A,bound1,...,boundn)
	   InitArray(A,low1,up1,...,lown,upn)
销毁:   Destory(A)
赋值:   SetValue(A,e,index1,...,indexn)
取值:	  GetValue(A,e,index1,...,indexn)

操作特点:

  1. 以数组元素的读取和写入为主;
  2. 一般不在数组中插入和删除数据元素;
  3. 支持使用下标(元素在各维数组中的位置序号)对数组元素进行随机访问。

在这里插入图片描述

小结:

数组特点:

  1. 数据元素亦为相同结构数组。
  2. 数据元素宏观为线性关系。

顺序存储方案:

  1. 可表达数组的递归结构,并体现数据元素之间的关系。
  2. 实现了数据元素多维关系到一维内存的映射。
  3. 通过下标可以随机访问数组元素。

普通矩阵的表示和实现:

矩阵的乘法

在这里插入图片描述

在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
int main()
{
   
	float A[3][4] = {
    {
   2,-3,1,5}, {
   -1,4,-4,-2}, {
   2,-3,4,2} };
	float B[4][2] = {
    {
   4,-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小张的日常笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值