有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
方法一:傻的很直接的算法(当然是我脑子最直接想到的,反复用if语句,毫无美感【dog】)
假设数组a[11](数组中含有10个元素,待会插入一个为防止溢出,故设11个内存空间)已按升序排好,则很容易知道a[0]为最小值,a[9]为最大值,那么插入的数num无非就是三种情况:
①比最小值小或等于最小值。则num的值赋给a[0],数组原来的元素全部后退一位。很容易想到先把原来数组的值放到一个空数组中(b[11]),num给a[0]赋值完毕后,a[i+1]=b[i]。
②比最大值大。直接放入数组末尾即可。
③在最大值和最小值之间(或等于最大值,则认为大于倒数第二个,符合第三点)。找到num大于的那个元素的下标n,将num赋值给a[n],原来的往后排就行了。先故技重施,找个空数组b[11]将a[11]的元素放入,num给a[n]赋值完毕后,a[i+1]=b[i],此时i=n。
#include<stdio.h>
int main()
{int a[11]={2,3,4,5,6,7,8,13,18,20};int b[11];int num,n,i;printf("请给num赋值\n");scanf("%d",&num);if(num<=a[0]){for(i=0;i<10;i++){b[i]=a[i];}a[0]=num;for(i=0;i<10;i++){a[i+1]=b[i];}}else if(num>a[9]){a[10]=num;}//当num的值在最小值和最大值之间时,我的赋值操作失败else {for(i=0;i<10;i++){if(num>a[i]){n=i+1;}}for(i=0;i<10;i++){b[i]=a[i];}a[n]=num;for(i=n;i<10;i++){a[i+1]=b[i];}printf("n=%d\n",n);}printf("最后,数组值为:\n");for(i=0;i<11;i++){printf("%d ",a[i]);}return 0;
}
课本答案与本答案思路一致,但课本用的程序设计似乎高级一点。向课本学习。
有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中相关推荐
- C语言学习之有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 #include <stdio.h> void main(){int a[11]={25,32,65,74,84,9 ...
- 有一个已排好序的数组 要求输入一个数后 按原来排序的规律将它插入数组中
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 思路:先定义一个数组,留出一个位置,给输入的那个数一个地方.然后分两种情况: 1:输入的数比最大的数小,两两交换位置,直到大于相 ...
- 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)
[练习] 题目要求:已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入:第一行,原始数列. 第二行,需要插入的数字. 输出:排序后的数列例如:输入:1 7 8 ...
- 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
题目描述 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入 第一行,原始数列. 第二行,需要插入的数字. 输出 排序后的数列 样例输入 1 7 8 17 23 2 ...
- ACMNO.20 C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。 输入 第一行,原始数列。 第二行,需要插入的数字。
题目描述 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入 第一行,原始数列. 第二行,需要插入的数字. 输出 排序后的数列 样例输入 1 7 8 17 23 2 ...
- c语言:“有一个已排好序的数组,要求输入一个数后,按原来的规律将它插入数组中” 的程序分析及详细代码
先来分析思路: 已经排好序的数组,有两种情况,一种是顺序,一种是逆序,由于该数组是自己给出的,所以我们不妨将该数组的顺序设为顺序. 1.我们需要创建一个顺序数组(a[ ]),创建时要注意,我们要确保数 ...
- 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。——C与C++实现
题目:一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中.(本例中输入的是一个升序的数组) 程序分析: (1)判断输入的数是否大于数组中最后一个元素,如果成立,将输入的数插入数组的末尾 ...
- Python Challenge-39 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. #!/usr/bin/python 3 # -*- coding: UTF-8 -*- #两种方法_Author_ = ...
- C++经典算法题-有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 题目 题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 2. 分析 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次 ...
- C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...
最新文章
- robots协议是什么?对网站SEO有什么好处?
- jQuery操作DOM元素案例
- oracle中使用sql查询时字段为空则赋值默认
- English Note_1_传统学习英语的误区
- Sendmail 邮件服务器安装和优化
- HFSS19 官方中文教程系列 L05
- python 百度翻译破解版,亲证可行
- Everything搜索_使用方法
- 【数学逻辑思维】A 好玩的数独游戏——002
- Android 圆形颜色拾取器代码,android 颜色拾取控件 ColorPickerDialog
- 6PSS并联结构的运动学正逆解推导
- chrome 浏览器升级后接口无法正常访问
- Top 50 有趣网站
- CVPR2020(Enhancement):论文解读《Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement》
- 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(四)
- 酒浓码浓 - ios进入页面自动弹出键盘
- 又一大型色情直播App被捣毁,女主播哭求别告诉家人
- 正则表达式限制非中文字符输入
- 前端面试查漏补缺--(三) 跨域及常见解决办法
- 基于 springBoot 实现webSocket方式的扫码登录
热门文章
- CC00229.CloudKubernetes——|KuberNetes细粒度权限控制.V13|——|Ratel.v01|k8s资源管理平台部署|
- [Windows] 迅雷 无修改 无限制 无视封锁
- IO流,小白入门基础知识
- 【渝粤教育】国家开放大学2018年秋季 8180-22T (1)畜禽生产概论 参考试题
- IDEA使用database时,连接MySQL后schemas不显示数据库名的情况
- iwifi 技术规范
- 大疆创新2019校招
- iOS 开发者必知的 75 个工具(译文)
- 10347 忙碌又贪心的泥瓦匠
- 2020年车易加加油优惠卡开启移动加油新时代