5 Java 插入排序
1、基本思想
将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小则依次交换,直到出现比选择元素小的元素或者全部元素都比较过为止。
2、算法描述
①. 从第一个元素开始,该元素可以认为已经被排序;
②. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
③. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
④. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
⑤. 将新元素插入到该位置后
⑥. 重复步骤②~⑤
3、代码实现
原数组:10, 1, 9, 2, 8, 3, 7, 4, 6, 5
第一次排序:1, 10, 9, 2, 8, 3, 7, 4, 6, 5
第二次排序:1, 9, 10, 2, 8, 3, 7, 4, 6, 5
第三次排序:1, 2, 9, 10, 8, 3, 7, 4, 6, 5
public class InsertSort {public static void main(String[] args) {int[] array = new int[]{10, 1, 9, 2, 8, 3, 7, 4, 6, 5};insertSort(array);}/*** @param array*/public static void insertSort(int[] array) {int len = array.length;for (int i=1; i<len; i++) {// 临时变量存储选择元素int temp = array[i];int j = i -1;while(j>=0 && temp < array[j]) {array[j+1] = array[j];j--;}j++;// 选择的元素放到该位置if (j != i) {array[j] = temp;}System.out.println(Arrays.toString(array));}} }
View Code
转载于:https://www.cnblogs.com/Latiny/p/10522229.html
5 Java 插入排序相关推荐
- java插入排序_Java程序要插入排序
java插入排序 Java程序插入示例的排序. 显示了示例仿真以及时间复杂度. 插入排序是一种简单的排序算法,可以一次构建一个最终的排序数组(或列表). 它比冒泡排序有效得多,并且在大型列表上的效率比 ...
- java 插入排序_看动画学算法之:排序-插入排序
简介 插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组. 这个算法就叫做插入排序. 插入排序的例子 同样的,假如我们有一个数组:29,10,14,37,20,25,44, ...
- java插入排序实现,经典(Java版)排序算法的分析及实现之一直接插入排序
预备知识 排序算法从功能上是对一个数据元素集合或序列重新排列成一个按数据元素某个相知有序的序列.从内存空间使用简单上看分为内部排序和外部排序. 内部排序是数据记录在内存中进行排序,适合不太大的元素序列 ...
- Java插入排序(思路及实现)
Java数组排序--插入排序(Insertion Sort)思路及实现 1.概念及其介绍: 插入排序(InsertionSort),一般也被称为直接插入排序.对于少量元素的排序,他是一个有效的算法 ...
- java插入排序算法实现
一,插入排序介绍 插入排序是基于比较的排序.所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元素的位置. 因此,对于这类排序,就有两种基本的操作:①比较操作: ②交换操作 其中,对 ...
- java 插入排序及希尔排序
看一下这两种排序的算法. 插入排序,其大致实现如下: /*** 插入排序;* <pre>* 插入排序(英语:Insertion Sort)是一种简单直观的排序算法.* 它的工作原理是通过构 ...
- Java 插入排序法
一.原理简介 插入排序的原理即是,从第二个元素开始,找到合适的位置,将元素插入到之前已排好序的元素中去,依次下去最终完成排序.就类似打扑克牌,每次抓到一张新的牌时,都将其插入到手中已排好序的牌组中. ...
- java插入排序(含插入排序代码)
目录 一:插入排序思想编辑 二:插入排序代码 三:结果 一:插入排序思想 基本思想:每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到插完所有元素为止. 算法实现:直接插入排序是将无序序 ...
- Java 插入排序 希尔排序
目录 一.插入排序 二.希尔排序 一.插入排序 public class test {public static void main(String[] args) {int[] arr = {100, ...
最新文章
- 生产者与消费者(三)---BlockingQueue
- 当我们在谈深度学习时,到底在谈论什么(一)--转
- 服务器维护,日志分析常用命令
- 子模板继承父模板示例_模板设计模式示例
- git常用命令,项目删除原有github连接并重新连接,回滚,下拉分支代码,切换分支
- Hibernate day01
- 和平精英有电脑版吗_和平精英华晨宇代言版-和平精英华晨宇代言版下载v1.9.10...
- [转]CSS3 Media Query实现响应布局
- PHP自定义数组转Json字符串函数
- Tampermonkey油猴教程及Greasyfork脚本使用
- 盛夏光年 - 江湖一剑客
- pdf 天线理论与技术 钟顺时_钟顺时. 天线理论与技术[M]. 北京:电子工业出版社, 2011: 290-296....
- CentOS 搭建NFS
- 服务器支持win10,服务器版Windows 10太强大了:容器最亮
- MATLAB源码-GRABIT从图像文件中提取数据点。
- 微信支付调用第三方系统无返回值的问题
- ArrayList类线程不安全的解决方法
- BZOJ2277[Poi2011]Strongbox——数论
- stm32的rxne和idle中断_stm32 USART_IT_IDLE中断 一帧数据
- xbox360游戏下载_完成的乐趣-通过Xbox向后兼容性探索旧游戏
热门文章
- 使用OData API批量删除Marketing Cloud里的contact
- 如何查看Kubernetes pod yaml文件的在线语法帮助
- python练手_Python数据分析练手项目
- Java入门算法(双指针篇)丨蓄力计划
- 微软公司服务器主题软件,微软重大IT升级 七款产品巩固软件帝国
- java jls8_GitHub - scmod/jls8
- vue循环如何传参数 php,vue循环列表动态数据的处理方法(代码)
- 力扣Java编译器_力扣--设计单链表
- JAVA图片不显示imageicon_怎么没法显示图片图标呢?
- 计算机组成原理指令译码,计算机组成原理实验报告指令译码器.docx