Java学习手册:(数据结构与算法-排序)插入排序

算法之Java初级排序算法:选择排序与插入排序详解 在编程的学习旅程中,算法是提升编程能力的关键所在。今天,咱们一同深入研究Java中的初级排序算法——选择排序和插入排序,希望能和大家共同进步,让我们在算法的世界里探索得更深更远! 阅读详情

算法思想:在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录有序地插入到已排好序的记录子集中,直到将所有待排序记录全部插入为止。

例子:举个栗子,对5,3,8,6,4这个无序序列进行简单插入排序,首先假设第一个数的位置时正确的,想一下在拿到第一张牌的时候,没必要整理。然后3要插到5前面,把5后移一位,变成3,5,8,6,4.想一下整理牌的时候应该也是这样吧。然后8不用动,6插在8前面,8后移一位,4插在5前面,从5开始都向后移一位。注意在插入一个数的时候要保证这个数前面的数已经有序。简单插入排序的时间复杂度也是O(n^2)。

 

package com.haobi;
/*
 * 插入排序(升序)
 * 1、使用temp临时保存待插入记录
 * 2、从后往前查找应插入的位置
 * 3、查找与移动在同一循环中完成
 * 
 */
public class InsertSort {
	//对数组a直接做插入排序
	public static void insertSort(int[] a) {
		if(a != null) {//如果数组不为空
			for(int i=1;i<a.length;i++) {//经历a.length-1次循环进行插入排序
				int temp = a[i];//存放待插入数据
				int j = i;
				if(a[j-1]>temp) {//如果待插入数的前一个数大于待插入数,需要进行插入排序
					while(j>=1 && a[j-1]>temp) {//从已排好序的子集里找到合适的插入位置,并进行相应的数据交换
						a[j] = a[j-1];
						j--;
					}
				}
				a[j] = temp;//将待插入的数据插入
			}
		}
	}
	public static void main(String[] args) {
		int[] array = {64,5,7,89,6,24};
		insertSort(array);
		for(int i=0;i<array.length;i++) {
			System.out.print(array[i]+" ");
		}
	}
}

程序输出结果如下:

5 6 7 24 64 89 

算法之Java排序:选择排序与插入排序的深度解析 在编程的学习旅程中,排序算法是重要的基础内容。今天,咱们一起深入研究Java中的选择排序和插入排序算法,从算法原理、性能分析到可视化展示与对比,希望能和大家共同进步,提升编程技能! 阅读详情

相关推荐

Java常见排序算法之插入排序

一、概述 本节由小千给大家分享Java常见排序算法之插入排序,之前我们说过排序是算法中的一部分。所以我们学习排序也是算法的入门,为了能让大家感受到排序是算法的一部分,我举个例子证明一下:比如麻将游戏,发完牌之后需要对手上的牌进行排序,大家想想,麻将排序如何排呢?它有什么特点呢?而且在摸牌打牌的过程中,我们要不断的排序,如何排序呢?选择什么排序算法最快呢? 以上这种情况我们就可以分析选择哪种排序算法更高效。比如下图已经有一副固定顺序的牌了: 此时轮到我们摸牌,摸到的牌如下: 此时,要将这个“三同”放到上面

xiaoxijinger的博客 1181

数据结构排序算法学习之插入排序(总)

数据结构排序算法之插入排序<一> 插入排序(Insertion sort) 是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时...

CodeHunter_qcy 8156

Java实现与理解插入排序算法

本文还有配套的精品资源,点击获取 简介:插入排序是Java中常用的基础排序算法,通过构建有序序列来对未排序数据进行排序。本文将详细探讨Java中插入排序的实现,包括其基本步骤和示例代码,以及如何利用 main.java 和 README.txt 文件理解算法应用和上下文。学习插入排序将有助于提升对排序算法原理的理解和编程技能。 1. 插...

weixin_33610780的博客 1372

【JavaSE与数据结构】排序算法之冒泡排序,选择排序,插入排序与希尔排序

本篇文章带大家认识排序算法——冒泡排序,选择排序,插入排序与希尔排序,其中冒泡排序,选择排序,插入排序是基础的排序算法,希尔排序是插入排序的优化,四种排序算法全部都是基于比较的排序算法,本文将以图解动图的方式描述算法实现过程,实现代码为java。

未见花闻的博客 1524

python自动交易 缠论_缠论自动交易系统实现了

一、缘起:缠中说禅的伟大,我想你只要上网搜索一下就知道了,他的才气不用我说,我只想说说他的《教你炒股票》系列文章,108篇文章,将他的股票操盘秘籍全部公开给广大的股友了,更有缠友将其理论写成公式,在网上也是广为流传,深受广大缠友们的喜爱。我也是缠中说禅的忠实崇拜者之一,从2008年开始每天都使用缠论来看盘,特别想将缠论写成交易系统,让计算加来帮助我们自动交易,从而减轻我们盯盘的辛劳,可是苦于没有好...

weixin_39970689的博客 4640

抖音X-Medusa风控逆向:unidbg环境重建与魔改AES还原

X-Medusa并非传统加密算法,而是深度耦合运行时环境的动态混淆系统,其核心是硬件指纹感知、线程上下文绑定与非标AES变异。理解其原理需跳出‘找密钥’思维,转向对CPU型号、系统属性、微秒级时间及内存布局的综合建模。技术价值在于将不可控的客户端风控,转化为可复现、可配置、可运维的服务化能力;典型应用场景包括合规数据采集、API协议适配与移动安全研究。本文聚焦Android native层逆向实践,基于unidbg实现高保真环境模拟,并完整还原S-Box动态生成、MixColumns矩阵变异与轮密钥XOR扰

weixin_33783283的博客 688

数据结构排序算法学习之插入排序

数据结构排序算法之插入排序<一> 插入排序(Insertion sort) 是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时...

CodeHunter_qcy 3万+

Scratch 3.0角色控制避坑指南:为什么你的键盘移动总卡顿?

本文深入剖析了Scratch 3.0中角色移动卡顿的根本原因,指出依赖`当按下`事件积木的局限性。通过对比分析,推荐采用`重复执行`结合`如果<键被按下?>`的循环控制方案,并引入速度变量模拟惯性,从而实现流畅、实时的键盘控制优化,显著提升游戏操作体验。

dd012的博客 1015

数据结构排序算法学习之插入排序2

数据结构排序算法之插入排序<二> 2.折半插入排序 基本思想: Java实现: package priv.qcy.sort.insert; public class BinaryInsertSort { public static void binaryInsertSort(int[] a) { int n = a.length; int i, j; for (i =...

CodeHunter_qcy 2万+

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4776

基于ESP32的智能停车场管理系统开发

智能停车场管理系统通过引入物联网(IoT)技术,实现对停车场内车辆的实时监控、空闲车位的管理、车辆的入场与出场控制等功能,大大提高了停车场的利用率和管理效率。通过集成物联网技术、云平台以及先进的传感器和执行器,系统不仅能实时监控停车场的车位状态,还能提供更好的用户体验。本文将介绍如何基于ESP32开发一个智能停车场管理系统,涵盖系统架构、硬件选择、软件开发以及最新技术的应用,帮助开发者实现高效的智能停车管理。ESP32的代码主要负责处理车位传感器的数据,控制LED指示灯的状态,以及与云平台进行数据交互。

2201_76125393的博客 913

Java学习手册:数据结构与算法汇总

数据结构与算法程序题汇总如下:(不断更新中) 1、PAT(Basic Level)Practise-----1001 2、Java学习手册:(数据结构与算法-链表)如何实现单链表的增删操作? 3、Java学习手册:(数据结构与算法-链表)如何实现单链表排序? 4、Java学习手册:(数据结构与算法-链表)如何从链表中删除重复元素? 5、Java学习手册:(数据结构与算法-链表)如何找出单链表中的倒...

浩比的专栏 3248

ICC2:postmask ECO参考脚本

更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 884

Java 插入排序算法

简介 上一章我们学习了 Java 选择排序算法,这一章,我们来学习插入排序算法,so,多了不说,继续老规矩,学习内容如下: 1、插入排序的定义 2、插入排序的思路 3、代码实现 1.插入排序的定义 插入排序算法:是基于某序列已经有序排列的情况下,通过一次插入一个元素的方式按照原有排序方式增加元素 2.插入排序的思路 默认从第2个数据开始比较。如果第2个数据比第1个小,则交换。 然后在用第3个数据比较,如果比前面小,则插入。否则,退出循环。 说明:默认将第1数据看成有序列表,后面无序的列表循环每一个数据

ZengTao 2149

LVGL 蜂巢气泡菜单(Hex Menu)

h。

摸鱼专家 177

VTK实战完整教程介绍

该专栏以VTK提供的Example为基础,讲解VTK中的相关接口和使用方法。订阅该专栏,带你了解所有VTK的功能,以便VTK更好的解决工作中遇到的问题。一起学习起来吧!

qq_40041064的博客 2507

Java 与排序算法(3):插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是将待排序序列分为已排序区间和未排序区间,然后每次从未排序区间取出一个元素,将其插入到已排序区间的合适位置中,使得插入后仍然保持已排序区间有序。重复这个过程,直到未排序区间为空,整个序列有序为止。

暗星涌动 3474

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java排序算法之<插入排序>

摘要:本文介绍了插入排序算法及其Java实现。插入排序通过将数组分为已排序和未排序部分,逐个插入元素到正确位置,时间复杂度为O(n²),在部分有序数据中表现较好。文章详细讲解了算法流程、Java代码实现(包含边界处理和关键步骤解析),并分析了其性能优于选择排序的原因:比较次数少、提前终止机制和更好的数据局部性。适合处理小规模或基本有序数据,是学习排序算法的重要基础。

weixin_50055999的博客 1480

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Java数据结构与算法】插入排序

插入排序介绍及其实现

lolly1023的博客 699

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据结构与算法之插入排序

package com.qiangqiang.sort; import java.util.Random; /** * \* Created with IntelliJ IDEA. * \* @author: xiyue * \* Date: 2020/12/31 * \* Time: 16:39 * \* To change this template use File | Settings | File Templates. * \* Description: * \ */ publ

京北游戏官方 6965

(Java)算法学习(二): 插入排序-排序过程拆解与算法优化

插入排序是一种简单直观的排序算法,适用于小规模数据或部分有序的数据集。其核心思想是将未排序的元素逐个插入到已排序部分的适当位置定义变量i和j,初始值均为 1。i用于划分已排序区域(左侧)和未排序区域(右侧),j用于在未排序区域中定位待排序数据。

2401_87274976的博客 1361

数据结构与算法——插入排序

插入排序是一种基于“逐步构建有序序列”的简单排序算法。其核心思想是:将数组划分为已排序部分和未排序部分,每次从未排序部分取出一个元素,插入到已排序部分的合适位置,使得整个已排序部分保持有序。

m0_65096391的博客 1327

JAVA数据结构与算法之插入排序

前言 最近面临毕业就业,在复习数据结构与算法,为了更好地掌握,加深印象,所以决定写一些博客来知识复现。 温馨提示:这篇博客可能不适合刚学数据结构的新手。 算法的简单介绍 插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 代码实现 package

iCanCode的博客 278

java插入排序算法及示例

java插入排序算法及示例

mr_lili_1986的博客 4345

【算法学习】 六 插入排序

本博客主要介绍插入排序是怎么一回事,排序原理,推导插入排序的时间复杂度。

程序猿学社的博客 3453

插入排序算法(基于Java实现)

title: 插入排序算法(基于Java实现) tags: 插入算法 插入排序算法原理及代码实现: 一、插入排序算法的原理 首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,算法结束。 如图所示,要排序的数据是 4,5,6,1,3,2,其中左侧为已排序区间,右侧是未排序区间。 插入排序也包.

qq_39350172的博客 5700
上一篇: Java学习手册:向上造型
下一篇: Java学习手册:(数据结构与算法-排序)希尔排序
浩比浩比
博客等级 码龄12年 395粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值