数组学习

数组
一.基本概念与形式
   它是一组具有相同类型的变量的集合,定义的基本用法例如 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;
}
这个题可以用二维数组,通过几纪录第一维变量来控制输出,也可以多定义一个一维数组,将需要进行变换的行存入新定义的数组,控制输出。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值