直接插入排序的基本思想是:将 n 个有序数存放在数组 a 中,要插入的数为 x,首先确定 x 插在数组中的位置 p,然后将 p 之后的元素都向后移一个位置,空出 a§,将 x 放入 a§,这样可实现插入 x 后仍然有序。

例 1
本例子通过直接插入的方法对上述例子中的 number 数组进行排序。创建一个 Test27 类文件,在 main() 方法中开始编码,具体实现代码如下:

public static void main(String[] args) {int[] number = { 13, 15, 24, 99, 4, 1 };System.out.println("排序前:");for (int val : number) { // 遍历数组元素System.out.print(val + " "); // 输出数组元素}int temp, j;for (int i = 1; i < number.length; i++) {temp = number[i];for (j = i - 1; j >= 0 && number[j] > temp; j--) {number[j + 1] = number[j];}number[j + 1] = temp;}System.out.println("\n排序后:");for (int val : number) { // 遍历数组元素System.out.print(val + " "); // 输出数组元素}
}

在上述代码中,首先在控制台输出 number 数组中的元素,然后通过 for 循环对数组中的元素进行排序,最后再次输出排序后的元素。

执行上述代码,最终的输出结果如下:

排序前:
13 15 24 99 4 1
排序后:
1 4 13 15 24 99

1.18 Java直接插入排序法相关推荐

  1. Java插空排序,Java直接插入排序法详解

    前面给大家介绍过了冒泡排序法.选择排序法等等,下面就来给大家讲一下java直接插入排序法,一起通过文章来进行了解吧. 来看一下基本思想: 将n个有序数存放在数组a中,要插入的数为x,首先确定x插在数组 ...

  2. java插入法排序_java算法之插入排序法

    思想:插入排序法的思想就是从数组的第二个元素开始,将数组中的每一个元素按照规则插入到已排好序的数组中以达到排序的目的.一般情况下将数组的第一个元素作为启始元素,从第二个元素开始依次插入.由于要插入到的 ...

  3. 插入排序法算长度为10的数组

    插入排序法的原理: 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入.对于给定的一组记录,初始时假定第一个记录自成一个有序序列,其余记录为无序序列.接着从第二个记录开 ...

  4. Java学习day08--方法引用和Stream流

    Java学习day08--方法引用和Stream流 方法引用和Stream流 方法引用 获取Collection.Map.数组流 Stream流的常用操作方法 方法引用和Stream流 1).流思想: ...

  5. 经典算法之折半插入排序法

    活动地址:21天学习挑战赛 文章目录 一.算法 1.算法概述 2.算法步骤 二.算法实践 1.Java代码 2.执行结果 三.复杂度分析 1.时间复杂度 2.空间复杂度 一.算法 1.算法概述 直接插 ...

  6. 基于JAVA层次分析法食堂评价系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA层次分析法食堂评价系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA层次分析法食堂评价系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  7. JAVA层次分析法食堂评价系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA层次分析法食堂评价系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA层次分析法食堂评价系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...

  8. 数据结构 - 直接插入排序法

    数据结构 - 直接插入排序法. 之前的博文已经介绍了 冒泡排序法 和 简单选择排序法. 其实上面两种的基本思路是一样的, 就是通过两层循环, 在每1个内循环中找到1个未排序的极值元素, 然后把这个元素 ...

  9. 插入排序法(思路及代码实现)

    插入排序法思想: 插入排序的基本思想是:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与 ...

最新文章

  1. 正则表达式——全部符号解释(详解)
  2. oracle10G rac 10.2.0.1升级10.2.0.4
  3. 数据分析:2020年3月汽车工业经济运行情况
  4. Interview:算法岗位面试—10.10下午—上海某银行算法岗位(偏数据分析,四大行之一)的技术面—关于项目的考察
  5. Java 集合系列11: Hashtable深入解析(1)
  6. 九十六、双指针和滑动窗口算法模板
  7. 去伪存真:因果约束下的图神经网络泛化
  8. 殊途同归的策略梯度与零阶优化
  9. 决胜秋招!分享128 道 Python 精选面试题!
  10. 使用Oracle UTL_FILE包操作文件
  11. 我爱Python的5个理由
  12. 转发网络《iOS网络编程与云端应用最佳实践》微博转发送书了
  13. Inception-v4论文总结
  14. JavaScript中的数据类型和数据类型转换
  15. router单页面多个标签tags的用法router-view/router-view
  16. 安:[摩斯密码表]摩斯密码对照表
  17. 刷脸支付系统源码定制开发
  18. 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
  19. ⭐️Python实用小工具之制作酷炫二维码(有界面、附源码)⭐️
  20. Xxx饭堂系统 JAVA+SQL+JDBC完成一个小项目(下篇)

热门文章

  1. Several ports (8005, 80, 8009) required by Tomcat v6.0 Server at localhost are already in use
  2. 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener
  3. git的简单操作命令
  4. TCP和UDP的优缺点及区别
  5. 切换debian8系统语言环境
  6. 浏览器的渲染原理简介
  7. 课堂练习--最大子数组和 环
  8. 一款超炫的图片排列特效
  9. 物联网协议Coap协议介绍
  10. 拔掉网线时Socket的检查方法