牛客网-编程入门习题训练习题集收集

简介: 牛客网-编程入门习题训练习题集收集

 目录

BC77 有序序列插入一个数


BC77 有序序列插入一个数

描述

有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

输入描述:

第一行输入一个整数(0≤N≤50)。

第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

第三行输入想要进行插入的一个整数。

输出描述:

输出为一行,N+1个有序排列的整数。

input:

5

1 6 9 22 30

8

output:

1 6 8 9 22 30


#include <stdio.h>
int main()
{
    int arr[51]={0};
    int m=0;
    scanf("%d",&m);
    for(int i=0;i<m;i++)
    scanf("%d",&arr[i]);  //完成数组元素的输入
    int ins=0;
    scanf("%d",&ins);
    for(int j=m-1;j>=0;j--)//从后往前设置,可以起到不断插入的作用
    {
        if(arr[j]>ins)
        {
            arr[j+1]=arr[j];//占用后面的空间,腾出前面的位置插入
            arr[j]=ins;
        }
        else 
        {
        arr[j+1]=ins;
        break;
        }
    }
    for(int t=0;t<m+1;t++)//数组元素的输出
    printf("%d ",arr[t]);
    return 0;
}

image.gif

此题要求的是进行一个有序数组的插入,那么思路大致为:既然是有序数组,那么要找到插入的位置对应的下标是多少,而在插入的时候如果从前往后遍历会导致没有多余的空间供新元素的插入,而如果选择从后向前遍历,可以使得后面的元素向后移位,腾出空间供新元素的插入,利用for循环把元素向前推进。

值得学习的点在于,利用数组后面空间不被占用,可以把元素后置再把新元素插入,反复重复就可以把要插入的新元素插入到想要的位置。



相关文章
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
128 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
算法 关系型数据库 Java
数据库原理第四章课后题答案(第四版)
数据库原理第四章课后题答案(第四版)
342 0
|
SQL 存储 数据库
数据库原理第七章课后题答案(第四版)
数据库原理第七章课后题答案(第四版)
104 0
|
存储 数据库 数据安全/隐私保护
数据库原理第五章课后题答案(第四版)
数据库原理第五章课后题答案(第四版)
133 0
|
SQL 存储 数据挖掘
数据库原理第六章课后题答案(第四版)
数据库原理第六章课后题答案(第四版)
530 0
|
机器学习/深度学习 存储 人工智能
C语言程序设计第五版谭浩强课后答案 第五章习题答案(3-17题)
C语言程序设计第五版谭浩强课后答案 第五章习题答案(3-17题)
|
数据可视化
R数据科学|5.5.2内容介绍及课后习题解答
要想对两个分类变量间的相关变动进行可视化表示,需要计算出每个变量组合中的观测数量。常用的两种方法有
508 0
R数据科学|5.5.2内容介绍及课后习题解答
|
机器学习/深度学习 算法
周志华机器学习课后习题解析【第二章】
周志华机器学习课后习题解析【第二章】
1112 0
周志华机器学习课后习题解析【第二章】
|
JavaScript 算法 测试技术
《算法设计编程实验:大学程序设计课程与竞赛训练教材》——3.1 素数运算的实验范例
本节书摘来自华章计算机《算法设计编程实验:大学程序设计课程与竞赛训练教材》一书中的第3章,第3.1节,作者:吴永辉,王建德著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1529 0