题解 | #有序序列插入一个整数#

有序序列插入一个整数

https://www.nowcoder.com/practice/444e87f938464906a1649cff236b102b

#include <iostream>
using namespace std;

int main() {
    int n,k,j,m=0;
    cin>>n;
    int arr[100];
    for(int i=0;i<n;i++){
        cin>>arr[i];
    }
    cin>>k;//输入

    for(j=0;j<n;j++){
        if(arr[j]>k){
            m=j;//保存j的位置
            for(int g=n-1;g>=j;g--)
            {
                arr[g+1]=arr[g];//比k大的,都依次向后移动一位
            }

            arr[m]=k;//插入k
            break;//一旦发生大于k的情况,此循环只运行一次便退出循环
        } 
        else if(arr[n-1]<k){//k比所有数组都大,没有进入上方的循环
            arr[n]=k;
            break;//跳出循环
        }
    }
    for(int i=0;i<n+1;i++){//依次输出
        cout<<arr[i]<<" ";
    }

    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务