数组
一.基本概念与形式
它是一组具有相同类型的变量的集合,定义的基本用法例如 int a[10]中,int 代表该数组的数据类型,a是数组名,中括号里(下标)代表它能容纳的数据最大量。
注:下标都是从0开始,也就是说上面的数组是从a[0]到a[9],不是从1到10。
二维数组与n维
一维:类型 数组名[元素个数];
二维: 类型 数组名[第一维长度][第二维长度];
n维 用n个下标表示。
注:1.当初始化列表给出全部元素初值时,第一维的长度可以省略。系统会根据第二维的长度与总的来自动判断一维长度。
2.数组第二维的长度永远不能省略。
二.应用
1 .数据的输入与输出,一组数据的处理可以通过循环依次输入与输出。
2 .数据排序
有4种排序方法
1. 冒泡排序 2. 选择排序 3 .插入排序
以上3种大体思路是条件成立,交换两组数据,进行排序,循环。
4 .sort函数
关于sort函数 头文件:algorithm
基本格式sort(a,a+n) 其中a为你需要排序的数组首地址(可以暂时理解为数组名),n为该数组第一个无效数据。
3 .数据查找
1 .顺序查找2 .二分查找
顺序查找 思路简单但易超时,二分查找运算量与顺序查找运算次数会上少。
使用二分查找时的一般步骤:
Ⅰ将数组 排好序,降序升序都可以。
Ⅱ进行中间值的比较。
Ⅲ直到找到,若没找到输出没找到。
实际应用
矩阵交换行
例:#include<iostream>
using namespace std;
int main()
{
int n,i,j,m;
int a[6][6];
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
cin>>a[i][j];
}
}
cin>>m>>n;
for(j=1;j<=5;j++) swap(a[m][j],a[n][j]);
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
这个题可以用二维数组,通过几纪录第一维变量来控制输出,也可以多定义一个一维数组,将需要进行变换的行存入新定义的数组,控制输出。
数组学习
最新推荐文章于 2021-07-31 10:24:00 发布