有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。-多语言

目录

C 语言实现

Python 实现

Java 实现

Js 实现


题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

C 语言实现

#include <stdio.h>int main() {int a[11] = {1, 4, 6, 9, 13, 16, 19, 28, 40, 100}; // 初始化数组int number, i, j;printf("原始数组是:\n");for (i = 0; i < 10; i++) {printf("%4d", a[i]); // 打印原始数组}printf("\n插入一个新的数字: ");scanf("%d", &number); // 输入新的数字// 找到插入位置for (i = 0; i < 10; i++) {if (a[i] > number) {// 将后面的元素向后移动一位for (j = 10; j > i; j--) {a[j] = a[j - 1];}a[i] = number; // 插入新数字break;}}// 如果新数字大于所有元素,则直接放在最后if (i == 10) {a[10] = number;}// 打印插入后的数组printf("插入后的数组是:\n");for (i = 0; i < 11; i++) {printf("%4d", a[i]);}printf("\n");return 0;
}
  1. 数组初始化:数组 a 被初始化为一个包含 10 个元素的已排序数组。
  2. 输入新数字:程序提示用户输入一个新的数字。
  3. 插入逻辑
    • 遍历数组,找到第一个大于新数字的位置。
    • 将该位置及其后面的所有元素向后移动一位,以腾出插入位置。
    • 将新数字插入到找到的位置。
    • 如果新数字大于数组中的所有元素,则将其放在数组的最后一位。
  4. 输出结果:最后打印插入后的数组。

Python 实现

def insert_number(sorted_list, number):# 找到插入位置for i in range(len(sorted_list)):if sorted_list[i] > number:sorted_list.insert(i, number)  # 在找到的位置插入新数字returnsorted_list.append(number)  # 如果新数字大于所有元素,则放在最后def main():sorted_list = [1, 4, 6, 9, 13, 16, 19, 28, 40, 100]  # 初始化已排序列表print("原始数组是:")print(sorted_list)number = int(input("插入一个新的数字: "))  # 输入新的数字insert_number(sorted_list, number)  # 插入新数字print("插入后的数组是:")print(sorted_list)if __name__ == "__main__":main()
  • 函数 insert_number:这个函数接受一个已排序的列表和一个要插入的数字。它遍历列表,找到合适的位置插入新数字。如果新数字大于列表中的所有元素,则将其添加到列表的末尾。
  • 主函数 main
    • 初始化一个已排序的列表 sorted_list
    • 打印原始列表。
    • 提示用户输入一个新的数字。
    • 调用 insert_number 函数将新数字插入到列表中。
    • 打印插入后的列表。

Java 实现

import java.util.Arrays;
import java.util.Scanner;public class InsertNumber {public static void main(String[] args) {int[] a = {1, 4, 6, 9, 13, 16, 19, 28, 40, 100}; // 初始化已排序数组int[] result = new int[11]; // 创建一个新数组以容纳插入后的结果System.arraycopy(a, 0, result, 0, a.length); // 复制原数组到新数组System.out.println("原始数组是:");System.out.println(Arrays.toString(a)); // 打印原始数组Scanner scanner = new Scanner(System.in);System.out.print("插入一个新的数字: ");int number = scanner.nextInt(); // 输入新的数字// 找到插入位置int i;for (i = 0; i < a.length; i++) {if (a[i] > number) {break; // 找到第一个大于新数字的位置}}// 将新数字插入到新数组中for (int j = 0; j < i; j++) {result[j] = a[j]; // 复制原数组的元素}result[i] = number; // 插入新数字for (int j = i; j < a.length; j++) {result[j + 1] = a[j]; // 移动原数组的剩余元素}// 打印插入后的数组System.out.println("插入后的数组是:");System.out.println(Arrays.toString(result));scanner.close(); // 关闭扫描器}
}
  1. 数组初始化:创建一个已排序的数组 a,并创建一个新数组 result 来存储插入后的结果。
  2. 打印原始数组:使用 Arrays.toString() 方法打印原始数组。
  3. 输入新数字:使用 Scanner 类获取用户输入的新数字。
  4. 插入逻辑
    • 遍历数组 a,找到第一个大于新数字的位置。
    • 将新数字插入到新数组 result 中,并将原数组的元素移动到适当的位置。
  5. 打印结果:最后打印插入后的数组。

Js 实现

function insertNumber(sortedArray, number) {// 找到插入位置for (let i = 0; i < sortedArray.length; i++) {if (sortedArray[i] > number) {sortedArray.splice(i, 0, number); // 在找到的位置插入新数字return;}}sortedArray.push(number); // 如果新数字大于所有元素,则放在最后
}function main() {let sortedArray = [1, 4, 6, 9, 13, 16, 19, 28, 40, 100]; // 初始化已排序数组console.log("原始数组是:");console.log(sortedArray);const number = parseInt(prompt("插入一个新的数字: "), 10); // 输入新的数字insertNumber(sortedArray, number); // 插入新数字console.log("插入后的数组是:");console.log(sortedArray);
}// 执行主函数
main();
  1. 函数 insertNumber:这个函数接受一个已排序的数组和一个要插入的数字。它遍历数组,找到合适的位置插入新数字。如果新数字大于数组中的所有元素,则将其添加到数组的末尾。
  2. 主函数 main
    • 初始化一个已排序的数组 sortedArray
    • 打印原始数组。
    • 使用 prompt 函数提示用户输入一个新的数字,并将其转换为整数。
    • 调用 insertNumber 函数将新数字插入到数组中。
    • 打印插入后的数组。
  3. 执行主函数:调用 main() 函数以运行程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC(2)

前言 这一节我们终结springmvc 1. SSM整合配置 先导入坐标 先创建包 配置类 然后开始创建jdbc的config和mybatis的config&#xff0c;还有properties SpringConfig&#xff1a; jdbc.properties&#xff1a; JdbcConfig: MybatisConfig: 下面开始spring整合mvc&#…

颜色分类

颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数…

零基础Python学习

1.环境搭建 1.1 安装运行环境python3.13 Welcome to Python.org 1.2 安装集成开发环境PyCharm PyCharm: the Python IDE for data science and web development 1.3 创建项目 && 设置字体 2.基础语法 2.1 常量与表达式 在python中整数除整数不会优化&#xff0c;所…

vue3项目创建方式记录

目录 创建vue3常用的方式有三种&#xff1a;一.使用vue cli创建二.使用vite创建三.使用vue3官方推荐创建方式&#xff08;create-vue&#xff09; 创建vue3常用的方式有三种&#xff1a; 一.使用vue cli创建 vue create 项目名二.使用vite创建 vite是下一代前端开发与构建工…

【无标题】JAVA策略模式代码例子

在Java中&#xff0c;您可以使用面向对象编程中的继承和多态性来实现您的需求。首先&#xff0c;我们定义一个Good类&#xff0c;该类包含满减策略和打折策略。然后&#xff0c;我们可以让Shoe类和Cloth类继承自Good类。为了实现不同的折扣或满减策略&#xff0c;可以考虑使用策…

cocos creator 触摸事件官方案例

cocos creator 触摸事件官方案例 1、官方示例&#xff1b; 2、对官方示例的总结&#xff1a; &#xff08;1&#xff09;介绍了鼠标事件和触摸事件的类型&#xff0c;这里主要关注的是在移动端和PC端都可以触发的触摸事件。 &#xff08;2&#xff09;节点事件的派发&#…

用MATLAB符号工具建立机器人的动力学模型

目录 介绍代码功能演示拉格朗日方法回顾求解符号表达式数值求解 介绍 开发机器人过程中经常需要用牛顿-拉格朗日法建立机器人的动力学模型&#xff0c;表示为二阶微分方程组。本文以一个二杆系统为例&#xff0c;介绍如何用MATLAB符号工具得到微分方程表达式&#xff0c;只需要…

Mongodb入门到放弃

Mongodb分片概括 分片在多台服务器上分布数据的方法&#xff0c; Mongodb使用分片来支持具有非常大的数据集和高吞吐量的操作的部署 具有大数据集和高吞吐量应用程序的数据库系统&#xff0c;可以挑战单台服务器的容量。 例如&#xff0c;高查询率可以耗尽服务器的cpu容量&…

SpringAi整合大模型(进阶版)

进阶版是在基础的对话版之上进行新增功能。 如果还没弄出基础版的&#xff0c;请参考 https://blog.csdn.net/weixin_54925172/article/details/144143523?sharetypeblogdetail&sharerId144143523&sharereferPC&sharesourceweixin_54925172&spm1011.2480.30…

Android电视项目焦点跨层级流转

1. 背景 在智家电视项目中&#xff0c;主要操作方式不是触摸&#xff0c;而是遥控器&#xff0c;通过Focus进行移动&#xff0c;确定点击进行的交互&#xff0c;所以在电视项目中焦点、选中、确定、返回这几个交互比较重要。由于电视屏比较大&#xff0c;在一些复杂页面中会存…

Mysql高可用架构方案

Mysql 介绍 Mysql是典型的开源关系型数据库&#xff0c;是许多网站、应用程序、企业软件产品的首选数据库。 Mysql特性&#xff1a; 易于使用&#xff0c;功能强大&#xff0c;支持事务、触发器、存储过程管理工具多种多样且功能丰富可以作为千万级数据管理的大型数据库采用…

yolo辅助我们健身锻炼

使用软件辅助健身能够大大提升运动效果并帮助你更轻松地达成健身目标。确保每次锻炼都更加高效且针对性强,精确记录你的训练进度,帮助你更清晰地看到自己的进步,避免无效训练。 借助YOLO11的尖端计算机视觉技术,跟踪和分析锻炼变得异常简单。它可以无缝检测和监控多种锻炼…

Flume 与 Kafka 整合实战

目录 一、Kafka 作为 Source【数据进入到kafka中&#xff0c;抽取出来】 &#xff08;一&#xff09;环境准备与配置文件创建 &#xff08;二&#xff09;创建主题 &#xff08;三&#xff09;测试步骤 二、Kafka 作为 Sink数据从别的地方抽取到kafka里面】 &#xff08;…

SRS搭建直播推流服务

学习链接 5分钟教你搭建SRS流媒体服务器 - B站视频 SRS Stack 入门B站合集视频 - SRS官方教程 SRS官网 SRS官网文档 ossrs/srs github SRS for window - 可以安装windows版本的srs&#xff0c;SRS 5.0.89正式支持Windows&#xff0c;每个5.0的版本都会提供安装包 文章目录…

css—轮播图实现

一、背景 最近和朋友在一起讨论的时候&#xff0c;我们提出了这样的一个提问&#xff0c;难道轮播图的效果只能通过js来实现吗&#xff1f;经过我们的一系列的争论&#xff0c;发现了这是可以通过纯css来实现这一效果的&#xff0c;CSS轮播图也是一种常见的网页展示方式&#x…

nacos安装部署

nacos安装部署 1.安装nacos 1.安装nacos nacos的安装很简单下载后解压启动即可&#xff0c;但是在启动前请确保jdk环境正常&#xff1b; 1.首先我们要下载nacos安装包&#xff1a;可以到官网下载&#xff0c;注意我这里使用的是2.1.0版本&#xff1b; 2.下载完成后&#xff0…

CTF-RE: STL逆向 [NewStarCTF 2023 公开赛道 STL] WP

多看看STL题就会了,很简单 int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // rbx__int64 v4; // raxchar v5; // bl_BYTE *v6; // rax_QWORD *v7; // rax__int64 v8; // rax__int64 v9; // raxint i; // [rsp0h] [rbp-250h]int j; // [r…

tomcat 8.5.35安装及配置

安装包地址&#xff1a; 1.Index of /dist/tomcat/tomcat-8/v8.5.35/binhttps://archive.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/ 2.通过网盘分享的文件&#xff1a;tomcat 链接: https://pan.baidu.com/s/1z9bD4rIuIRvzQ4okm3iRzw?pwdp24p 提取码: p24p 3.通过官网…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】

YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第4篇&#xff1a;YOLOv2—…

机器学习提高电子病历主要诊断编码正确率的路径分析

摘要 本研究探讨机器学习在强化病历书写质量和提高主要诊断编码正确率方面的应用。介绍了基于机器学习的病历质量分析方法、AI病历质控应用、智能预问诊系统和诊室听译机器人等在病历书写质量提升中的作用&#xff0c;以及基于机器学习的ICD智能诊断编码方法和重症病人ICD自动…