数组下标

· · 个人记录

什么是数组下标?

每一个数组如a[i],都有下标(i)就相当于我们家都有门牌号一样,我们可以快速找到

以一个简单的一维数组为例:

int a[10]。这是一个整型的数组a,有10个元素:a[0]-a[9],0-9就是它们的下标,可以用a[0-9]来快速查找。

练习题

一、插数问题

有一串已经从小到大排好序的数 2 3 5 8 9 10 18 26 32 现需要往这串数中插入6使其得到的新序列仍符合从小到大排列。

注意!!!是新序列不要直接输出

问题分析

我首先想到的是把它遍历一遍找到第一个比6大的数,但瞬间有点懵!这怎么替换呢?难道再加一个循环?显然时间复杂度瞬间上升,这就要用到数组下标了。

先把6排到数组末尾,然后找都正确位置后替换下标

题解

#include<iostream>
using namespace std;
int a[20],b[20],n,q;
int main( )
{
    for(int i=1;i<=9;i++) 
    {
        cin>>a[i];//输入
        b[i]=i+1;//设置下标的初始值 
    }
    a[10]=6;//要替换的数 
    int i;
    for(i=1;i<=9;i++)
    {
        if(a[i]>a[10])//第一个比他大的数 
        {
            b[10]=i+1;//交换他们的下标 
            b[i]=11;
            break;
        }
    }
    for(int j=1;j<=9;j++)//输出 
    {
        if(j==i)
        {
            cout<<a[b[j]-1]<<" ";
            cout<<a[b[10]-1]<<" ";
        }
        else
        cout<<a[b[j]-1]<<" ";
    }
    return 0;
}

//可以代替指针,十分方便