第五单元数组的总结
数组就是一组相同类型的变量,关于大量的计算输入数据或者大量的变量计算循环速度加快。
经常用于大批量的,同一类型的数据处理任务中。
数组的定义
int a【20】
定义了一维整型数组中有20个元素,编号从0到19。
另外只能逐个引用数组的单个元素。
数组的储存结构中首地址就是数组名,数组一旦定义后不能改变其大小。
数组定义后的初值是随机数。
一般需要操作人员初始化。
数组的输入可以通过键盘读入和直接赋值
(1)int h【100】
for(i=1;i<100;i++)
(2)int h[100],a[20];
for(i=0;i<100;i++)
h[i]=0;
for(i=0;i<20;i++)
a[i]=i*2+1;
memset函数的介绍
按字节进行赋值一般用于char型数组中 如果是整型的数组一般赋值为0和-1.使用须包含头文件#include<cstring>
fill函数的介绍
按元素进行赋值可以是整个数组,也可以是部分连续元素。需使用头文件#include<algorithm>
使得步骤更简便
while(cin>>x)
这样不易出错。
数组元素的插入或删除要注意插入时要往后挪一位,删除时向前覆盖一位。
关于数组中的查找我还没搞懂就先不写了
元素的排列有三种
1:选择排序
通过打擂台似的筛选出最小的放在最前面,依次排列直到第n个。
2:冒泡排序
相邻的数据两两比较如果逆序就交换位置,直到最大的的数排列到最后一位。依次从后往前排。
3:插入排序
把所有的数据排成两组,前一段先排好,后一段待排序,然后将后一段数据逐个插入。
二维数组的定义
int a[20][30]
此时二维数组就定义好了,前面是一维数组,后面是第二组。两个的乘积就是元素的个数。
于是该形式可以用矩阵的形式表示。另外在定义的同时也和一维数组一样可以初始化赋值。
因为计算机内部储存一维数组用连续存储单元,所以二维数组运用的的是“行优先”的连续存储,即先存储第0行的所有元素,再逐个依次储存后来的行的元素。
数字方阵就是行列数相同的二维数组,其中的元素顾名思义都是数字。用于解决数字问题,一般用两种方法。
解析法
找出方阵元素和数组规模n的通项公式然后直接用二重循环给元素赋值。
模拟法
把数字方阵看成动态的填数过程,把n2个数依次填入数组每填好一个数就定位好下一个数的位置。
字符数组
与数字数组相似,但该数组元素都为字符或字符串。
另外!!!
关于字符的表示一维数组一般都为char letter[2]表示字符个数或字符串
二维数组加入了matrix。
对于数组这一单元的学习,很多新的方法加入,虽然难懂,但是是非常方便的工具,可以大大简化冗杂的计算过程和数据处理,
处理数据和解决的问题更多样化。虽然还不大会用,但只要用上,相比较于之前的繁杂步骤很方便。其中运用循环,分支,更为频繁要求更高,对问题的理解度也更高。