当前位置: 首页 > news >正文

算法(七)插入排序

文章目录

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

插入排序简介

  • 插入排序(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();}
}

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

相关文章:

  • 如果查看svn的账号和密码
  • 矩阵链相乘(动态规划法)
  • 前端vue搭建
  • 7 步解决Android Studio模拟器切换中文输入
  • go语言初学03 连接mysql
  • python数据分析——数据预处理
  • 【CH32V305FBP6】调试入坑指南
  • list 的实现
  • Kubernetes (K8s) 普及指南
  • golang开发 gorilla websocket的使用
  • Python代码:二十五、有序的列表
  • 英伟达A100算力卡性能及应用
  • 基于Spring前后端分离版本的论坛系统-自动化测试
  • spring管理bean
  • 数据标准的制定落地
  • (三)从jvm层面了解线程的启动和停止
  • [NodeJS] 关于Buffer
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CSS3 变换
  • gops —— Go 程序诊断分析工具
  • Java深入 - 深入理解Java集合
  • JDK 6和JDK 7中的substring()方法
  • PHP CLI应用的调试原理
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 阿里云购买磁盘后挂载
  • 动态魔术使用DBMS_SQL
  • 对象管理器(defineProperty)学习笔记
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 前端js -- this指向总结。
  • 删除表内多余的重复数据
  • 微信公众号开发小记——5.python微信红包
  • 2017年360最后一道编程题
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 容器镜像
  • (Python) SOAP Web Service (HTTP POST)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (分布式缓存)Redis持久化
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (四)Controller接口控制器详解(三)
  • (转)ORM
  • ***测试-HTTP方法
  • ***通过什么方式***网吧
  • .net core 6 redis操作类
  • .net Signalr 使用笔记
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET上SQLite的连接
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Autowired多个相同类型bean装配问题
  • []常用AT命令解释()
  • [Android] Amazon 的 android 音视频开发文档
  • [C\C++]读入优化【技巧】