插入排序代码实现(java)

news2024/9/20 0:41:22

简介:

也是一种简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增的有序表

说明:

拿一维数组来说,可以把第一个元素看成一个有序表,后面的元素看成无序表,从无序表中取出元素依次和有序表中的元素对比,进行插入,大概过程如下:

代码实现:

public class ChaRuPaiXu {
    public static void main(String[] args) {
        int[] arr = {101,34,119,1,33,245,678};
        chaRuPaiXu(arr);
    }//main()
    //插入排序
    static void chaRuPaiXu(int[] n) {
        for (int i = 1; i < n.length; i++) {//从待插入的元素开始
            int insertValue = n[i];//记录待插入元素,找到位置后直接插入
            int insertIndex = i-1;//n[1]前面数的下表
            //给insertValue找到插入位置
            while (insertIndex >= 0 && insertValue < n[insertIndex]) {
                //待插入的数还没有找到插入位置,需要将arr【insertIndex】后移
                n[insertIndex+1] = n[insertIndex];//后移当前检索的元素
                insertIndex--;//索引后移继续扫描
            }//while
            //退出循环后,说明插入的位置找到,insertIndex+1
            //判断是否需要赋值
            if (insertIndex+1 != i) {
//如果有序表最后一个元素后面就是插入元素,则无序重新插入,直接开始下一轮比较
                n[insertIndex+1] = insertValue;
            }
            System.out.println("第"+i+"轮插入后");
            System.out.println(Arrays.toString(n));
        }

结果:

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

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

相关文章

《中文Python穿云箭量化平台二次开发技术08》获取大盘涨跌家数、平均股价数据等来判断市场涨跌趋势,并在策略中自动控制多空交易

《中文Python穿云箭量化平台》是纯Python开发的量化平台&#xff0c;因此其中很多Python模块&#xff0c;我们可以自己设计新的量化工具&#xff0c;例如自己新的行情软件、新的量化平台、以及各种量化研究工具。 穿云箭自带指标公式源码运行模块&#xff0c;可以为其他量化平台…

莫比乌斯反演总结

目录 前置知识1.1 线性筛 (欧拉筛)1.2 整除分块 (数论分块)引理 1引理 2引理 3实现例 1例 2例 3例 4 1.3 数学知识积性函数莫比乌斯函数狄利克雷(Dirichlet)卷积 莫比乌斯反演2.1 公式2.2 常用~(唯一)~结论2.3 例题例 1例 2例 3例 4例 5练习 1练习 2练习 3练习 4 懵逼乌斯反演总…

配置nginx安全连接ssl(购买域名、获取ssl证书)

以前了解过ssl配置比较麻烦&#xff0c;需要弄挺多东西。 1、购买域名、获取ssl证书 2、安装nginx的ssl模块 3、配置config 1、购买域名、获取ssl证书 可以在腾讯云、阿里云购买域名&#xff0c;然后申请免费的ssl证书&#xff0c;因为免费的证书需要域名才能申请&#xff0…

docker安装配置、docker命令

一、CentOS7安装docker 1、安装 Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求&#xff0c;所以我们在CentOS 7安装Docker。 卸载旧docker 如果之前安装过旧版本的Docker&#xff0c;可以使用下面命令…

Codeforces Round 964 (Div. 4) A-E Java题解

比赛地址 Dashboard - Codeforces Round 964 (Div. 4) - Codeforces A题 签到题 给一个两位数 求各位上的数字和 直接对10取余加上本来的数除以10 // 注意类名必须为 Main, 不要有任何 package xxx 信息 // package Dduo; import java.io.*; import java.math.*; import j…

22:差分线规则

1.那些线是差分对&#xff1a; ①有些特定模块就是差分线&#xff1a;USB&#xff0c;HDMI, 以太网口&#xff0c;LEDS等 设置差分对 Panel打开PCB 输入&#xfe62;和- 点击执行 对90欧姆差分对和100Ω差分对进行分类 设置差分对线宽 ①90ohm 由excel可知&a…

孩子自闭症的主要表现:探寻理解之门

自闭症&#xff0c;也称为孤独症&#xff0c;是一种复杂的神经发展障碍&#xff0c;它影响着孩子的社交互动、沟通能力以及行为模式。当家长注意到孩子出现自闭症倾向时&#xff0c;及时识别并寻求专业帮助至关重要。以下是孩子自闭症的一些主要表现&#xff0c;希望能为家长提…

西安电子科技大学研究生新生大数据

西安电子科技大学研究生新生大数据&#xff0c;来自卓越工程学院—杭州研究院 杭研不少来自双非院校&#xff0c;西电也不怎么歧视双非的

游戏开发设计模式之模板方法模式

目录 模板方法模式在游戏开发中的具体应用案例是什么&#xff1f; 如何在不同类型的游戏&#xff08;如角色扮演游戏、策略游戏等&#xff09;中实现模板方法模式&#xff1f; 模板方法模式与其他设计模式&#xff08;如观察者模式、状态模式等&#xff09;相比&#xff0c;…

实战项目:俄罗斯方块(二)

文章目录 &#x1f34a;自我介绍&#x1f34a;俄罗斯方块数据存储三维数组的简单介绍俄罗斯方块数组的设计类型的设计初始值的方块库的设计输出指定位置的图形输出每种图形及其转换形式代码 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏…

MySQL出现锁等待Lock wait timeout exceeded该如何快速解决

目录 一、前言 二、锁等待是如何产生的&#xff1f; 三、如何避免锁等待&#xff1f; 四、出现锁等待&#xff0c;如何快速解决&#xff1f; 设置合理的锁等待超时时间 使用DBdoctor及时观测锁等待数据 五、总结 一、前言 在使用MySQL等数据库处理业务时&#xff0c;锁…

面对自闭症的孩子:理解、关爱与支持

自闭症&#xff0c;这个看似遥远却又时常出现在我们生活中的词汇&#xff0c;它影响着无数家庭和孩子。面对自闭症的孩子&#xff0c;我们或许会感到困惑、无助&#xff0c;但更重要的是&#xff0c;我们要给予他们理解、关爱与支持。 我们要做的是深入理解自闭症。自闭症是一种…

Linux创建sysfs属性节点 - DEVICE_ATTR宏、device_create_file()、sysfs_create_group()

目录 简介&#xff1a; 一、DEVICE_ATTR介绍 1、DEVICE_ATTR宏 1.1 参数说明 1.2 调用方法 二、sysfs创建属性文件 1、创建一个sysfs属性文件 1.1 device_create_file()函数 1.2 device_create_file()实例 2、创建多个sysfs属性文件 2.1 sysfs_create_group()函数 2…

AI少女/HS2甜心选择2 仿崩坏3卡系列全合集打包

内含AI少女/甜心选择2 仿崩坏3系列全合集打包共11张 内含&#xff1a;月魄装 幽兰黛尔幽兰黛尔薪炎之律者青鸟之庭帕朵菲莉丝雷电芽衣校服布洛妮娅八重樱 冰海琴音爱衣 悠闲旋律爱莉希雅EVA 明日香。 下载地址&#xff1a;https://www.51888w.com/241.html 部分演示图&#…

java构建工具-maven的复习笔记【适用于复习或者初步了解】

&#x1f939;‍♀️潜意识起点&#xff1a;个人主页 &#x1f399;座右铭&#xff1a;得之坦然&#xff0c;失之淡然。 &#x1f48e;擅长领域&#xff1a;前端 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我持…

鸿蒙UIAbility组件进阶

鸿蒙UIAbility组件进阶 AbilityStage基本概念生命周期使用方式 UIAbility组件间交互启动应用内的UIAbility启动应用内的UIAbility并获取返回结果启动UIAbility的指定页面调用方目标UIAbility冷启动目标UIAbility热启动 AbilityStage 基本概念 在了解AbilityStage之前&#xf…

Promise 工具箱:手写实现静态方法的完全指南

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 Promise有很多静态方法&#xff0c;本文就来分享下如何实现这些静态方法。 目录 …

Markdown语法与Latex公式汇总

1 基本语法 1.1 标题 语法如下&#xff1a; 效果如下&#xff1a; 1.2 字体样式 语法效果普通正文字体普通正文字体*倾斜字体*倾斜字体**加粗字体**加粗字体***倾斜加粗字体***倾斜字体~~划线字体~~倾斜字体 1.3 分割线 语法如下&#xff1a; 效果如下&#xff1a; …

【C++11及其特性】C++类型转换

C类型转换目录 一.C语言的强制类型转换二.static_cast1.父类子类之间指针或引用的转换2.基本数据类型的转换3.空指针转换其他类型指针4.其他类型指针转换为空指针5.static_cast特点6.完整代码 三.reinterpret_cast1.数值与指针之间的转换2.不同类型指针和引用之间的转换3.reint…

【网络安全】重置邮件逻辑漏洞导致账户接管

未经许可&#xff0c;不得转载。 文章目录 正文 正文 目标&#xff1a;xxx.com 点击重置密码&#xff0c;系统会发送一封链接至邮箱。响应如下&#xff1a; 从上图中可以看到&#xff0c;validationSession对象中有一个sessionID 而收到的链接中的token和sessionID的值是一样…