算法(七)插入排序

文章目录

  • 插入排序简介
  • 代码实现

插入排序简介

  • 插入排序(insertion sort)是从第一个元素开始,该元素就认为已经被排序过了。
  • 然后取出下一个元素,从该元素的前一个索引下标开始往前扫描,比该值大的元素往后移动。
  • 直到遇到比它小的元素时候,比它小元素的下一个元素就是该元素的位置;当索引值为0的时候,那么索引为0的位置就是该元素的位置。

代码实现

package com.xxliao.algorithms.sort.insertion_sort;/*** @author xxliao* @description: 插入排序* @date 2024/5/30 21:44*/
public class InsertionSort {public static void main(String[] args) {int[] array = {1,6,2,6,8,3,8,3,9,3,4,6,56,8};System.out.print("排序前:");printArray(array);sort(array);System.out.print("排序后:");printArray(array);}/*** @description  插入排序* @author  xxliao* @date  2024/5/30 21:46*/public static void sort(int[] array) {for (int i = 1; i <= array.length - 1; i++) {int temp = array[i]; //记录当前值int j = i -1; //记录值索引的前一个值,也就是当前值,需要和前面0 ~  i-1 范围的值进行比较。while(j >= 0 && array[j] > temp) { //前面的值 比 后面的值大,进行交换array[j+1] = array[j]; // 将大的值往后移动一位,原值在temp中j--;}// 找到放置的位置,赋值array[j+1] = temp;printArray(array);}}/*** @description  打印数组* @author  xxliao* @date  2024/5/30 21:47*/public static void printArray(int[] array) {for (int i = 0; i <= array.length - 1; i++) {System.out.print(array[i]+" ");}System.out.println();}
}

演示结果:
在这里插入图片描述

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

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

相关文章

Caliburn.Micro框架学习笔记——Action的参数传递机制

据此篇文章&#xff0c;我们继续来谈谈Caliburn.Mirco的Action参数传递机制。因此程序结构都是默认MVVM的形式。 基本机制 它的机制是—— Caliburn.Micro 的智能对象参数绑定机制通过约定和反射使得视图和视图模型之间的交互变得更加直观和简洁。通过 cal:Message.Attach 语…

【C语言】探索文件读写函数的全貌

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 &#x1f525;引言 本章将介绍文件读取函数的相关知识和展示使用场景&am…

vue中如何进行Markdown文档展示与解析

vue中如何进行Markdown文档展示与解析 一、安装插件二、如何使用 需求&#xff1a;接口返回了一个政策详情页面&#xff0c;里面有图片&#xff0c;用v-html展示的是url&#xff0c;所以改用vue-markdown 一、安装插件 npm install vue-markdown --save二、如何使用 <vue-…

RabbitMQ 如何保证消息不丢失

开启消息确认机制&#xff1a; 在发布消息时&#xff0c;可以设置deliveryMode为2&#xff08;持久化&#xff09;&#xff0c;以确保消息不会因为RabbitMQ的崩溃而丢失。 使队列持久化&#xff1a; 通过设置durable为true&#xff0c;可以确保队列在RabbitMQ重启后依然存在。…

Python 实战:打造智能进销存系统

想象一下&#xff0c;在繁忙的商店里&#xff0c;每天都有数以百计的商品进进出出&#xff0c;库存在不断变化&#xff0c;销售数据涌入&#xff0c;而你却能轻松应对一切。是的&#xff0c;Python 可以帮你实现这一切。本文将教你如何使用 Python 构建一个智能的进销存系统&am…

学习记录-5.30

学习记录-5.30 同步在我的博客可以来看看 http://www.zhihuigou.top/ ### Golang为什么比别的语言跟擅长并发: 首先是因为Goroutine&#xff0c;算是go的一个最大的特色 是轻量级的线程,创建一个goroutine的开销非常小,大约几KB,且调度开销很低 并且goroutine的调度,并不…

React组件通信——兄弟组件

兄弟组件通信 方法一&#xff1a;状态提升 子组件先将数据传递到父组件&#xff0c;父组件再把数据传到另一个子组件中。 import { useState } from "react"; // 定义A组件&#xff0c;向B组件发送数据 function A({ onGetMsg }) {const name "this is A na…

fyne apptab布局

fyne apptab布局 AppTabs 容器允许用户在不同的内容面板之间切换。标签要么只是文本&#xff0c;要么是文本和一个图标。建议不要混合一些有图标的标签和一些没有图标的标签。 package mainimport ("fyne.io/fyne/v2/app""fyne.io/fyne/v2/container"//&…

PolarDB分布式架构学习笔记

PolarDB分布式是什么&#xff1f; 业务场景有哪些&#xff1f; 分布式焦点问题&#xff1f; 技术架构 CN DN介绍 CDC组件介绍 Columnar组件介绍 视频学习&#xff1a;PolarDB 实操课 第一讲&#xff1a;PolarDB分布式版架构介绍_哔哩哔哩_bilibili

都在说的跨网文件共享系统是什么?企业该怎么甄选?

跨网文件共享系统成为越来越受关注的产品焦点&#xff0c;那么跨网文件共享系统是什么呢&#xff1f;跨网文件共享是指在不同网络之间共享文件的过程&#xff0c;使得不同网络中的用户可以访问和使用共享的文件。 原则上而言&#xff0c;不同网络间的文件是无法共享的&#xff…

在SpringBoot中使用redis中的zset实现延迟任务

为什么使用zset实现延迟任务 ZSET&#xff08;有序集合&#xff09;适合实现延迟任务的原因主要有以下几点&#xff1a; 排序特性&#xff1a;ZSET根据分数&#xff08;score&#xff09;自动排序&#xff0c;这使得我们可以将任务的执行时间作为分数&#xff0c;从而能够轻松…

OAK相机如何将 YOLOv9 模型转换成 blob 格式?

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是Ashely。 专…

最新消息:腾讯大模型App“腾讯元宝“上线了

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃斜杠君&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &#…

Python代码:二十八、密码游戏

1、题目 牛牛和牛妹一起玩密码游戏&#xff0c;牛牛作为发送方会发送一个4位数的整数给牛妹&#xff0c;牛妹接收后将对密码进行破解。 破解方案如下&#xff1a;每位数字都要加上3再除以9的余数代替该位数字&#xff0c;然后将第1位和第3位数字交换&#xff0c;第2位和第4位…

2024年艺术鉴赏与科学教育国际会议(ICAASE 2024)

2024年艺术鉴赏与科学教育国际会议 2024 International Conference on Art Appreciation and Science Education 【1】会议简介 2024年艺术鉴赏与科学教育国际会议是一场集艺术、科学和教育于一体的国际性学术盛会。本次会议旨在推动艺术鉴赏与科学教育领域的深入交流与合作&am…

C语言(字符函数和字符串函数)1

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

python API自动化(接口测试基础与原理)

1.接口测试概念及应用 什么是接口 接口是前后端沟通的桥梁&#xff0c;是数据传输的通道&#xff0c;包括外部接口、内部接口,内部接口又包括&#xff1a;上层服务与下层服务接口&#xff0c;同级接口 外部接口&#xff1a;比如你要从 别的网站 或 服务器 上获取 资源或信息 &a…

SpringMVC框架学习笔记(四):模型数据 以及 视图和视图解析器

1 模型数据处理-数据放入 request 说明&#xff1a;开发中, 控制器/处理器中获取的数据如何放入 request 域&#xff0c;然后在前端(VUE/JSP/...)取出显 示 1.1 方式 1: 通过 HttpServletRequest 放入 request 域 &#xff08;1&#xff09;前端发送请求 <h1>添加主人…

使用dockerfile快速构建一个带ssh的docker镜像

不多说先给代码 FROM ubuntu:22.04 # 基础镜像 可替换为其他镜像 USER root RUN echo root:root |chpasswd RUN apt-get update -y \&& apt-get install -y git wget curl RUN apt-get install -y openssh-server vim && apt clean \&& rm -rf /tmp/…

在SpringBoot项目中实现切面执行链功能

1.定义切面执行链顶级接口 AspectHandler /*** 切面执行链**/ public interface AspectHandler {/*** 设置排除项* param excludes*/default void setExcludes(List<String> excludes) {}/*** 获取排除项* return*/default List<String> getExcludes() {return ne…