Java实现(直接)插入排序

直接插入排序是指将一列乱序的数字逐个插入到队列中,在插入时小的放前面,大的放后面(指正序,逆序思路相反)。

实现过程如下:

  1. 建立一个临时变量(也叫哨兵),将即将参与排序的数字赋值给它。
  2. 从被插入的数组后面往前比较,若大于哨兵,则记录下标,从记录处后面的元素都向后移动,直到遇到比哨兵小的数。
  3. 将哨兵放置到遇到的第一个比哨兵小的数的后面。

实现代码,仅供参考(自己写不出来的推荐使用copilot插件进行生成,然后读代码学习):

public static void main(String args[]){int[] arr = new int[]{1,6,8,9,2,3,5,4,7};for(int i=1;i<arr.length;i++){ //从第二个元素开始比较int temp = arr[i];     //记录当前元素(哨兵)for(int j=i-1;j>=0;j--){  //从最后一个元素开始比较if(arr[j]>temp) {  //如果比当前元素(哨兵)大arr[j+1] = arr[j] //从该处往后所有元素向后移动一位arr[j] = Temp //将当前元素(哨兵)插入到arr[j]中}}}for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}
}

Java实现(直接)插入排序相关推荐

  1. Java排序算法——插入排序(Insertion Sort)

    之前总结了交换排序的冒泡排序与选择排序的简单选择排序,这次我们来看看插入排序的简单插入排序~ 往期传送门: 冒泡排序: Java排序算法--冒泡排序(Bubble Sort)https://blog. ...

  2. Java数据结构——直接插入排序+希尔排序+冒泡排序

    文章目录 一.插入排序 (一).什么是插入排序 (二).图例 (三).Java代码 二.希尔排序 (一).什么是希尔排序 (二).图例 (三).Java代码 三.冒泡排序 (一).什么是冒泡排序 (二 ...

  3. java 算法之插入排序

    1.插入排序的思想就是:对于给定的一组记录,初始时假设第一个自成一个有序序列,其余记录为无须序列.接着从第二个开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有 ...

  4. java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例

    1 排序思想: 将待排序的记录Ri插入到已经排好序的记录R1,R2,--,R(N-1)中. 对于一个随机序列而言,就是从第二个元素开始,依次将这个元素插入到它之前的元素中的相应位置.它之前的元素已经排 ...

  5. java代码测试---插入排序和选择排序

    1 public class QuickSort { 2 3 //插入排序 4 //插入前的序列是排序好的,将新插入的数值与之前的数值比较 5 //直到找到合适的位置 6 public static ...

  6. Java中的插入排序和希尔排序

    插入排序&&希尔排序 插入排序 希尔排序 上一篇博客我给大家伙说了一下子堆排序,之所以我把插入排序和希尔排序放在一起呢,是因为希尔排序实际上用到了插入排序的思想,希望下面的内容能够帮助 ...

  7. java数组的插入排序以及时间复杂度

    插入排序的思想是把前面的排好依次往下进行遍历,发现比最后一个数小的把它插入排好序的最后一个数的前面,此时排好的数组可能已经不再有序,就对它进行维护,以此重复上述操作 具体步骤:定义一个指针i,再定义一 ...

  8. 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  9. java插入排序_Java程序要插入排序

    java插入排序 Java程序插入示例的排序. 显示了示例仿真以及时间复杂度. 插入排序是一种简单的排序算法,可以一次构建一个最终的排序数组(或列表). 它比冒泡排序有效得多,并且在大型列表上的效率比 ...

最新文章

  1. 异常:javax.servlet.jsp.PageContext cannot be resolved to a type
  2. SAP UI5 应用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创建,编辑和保存功能
  3. 修正discuz发帖首次换行无效的问题
  4. linux c中字符替换函数,Linux C 支持正则表达式的字符串替换函数
  5. linux matplotlib 中文显示乱码
  6. .net网络编程(4)TcpListener、TcpClient
  7. 科罗拉多州立大学计算机科学专业,2020年科罗拉多州立大学有哪些优势专业
  8. Julia: array =tuple, 与 ...
  9. (转)2012年度最佳Web前端开发工具和框架
  10. 【ENVI】监督分类
  11. 基于php校园官方网站的背景,校园微信平台的设计
  12. 物联网技术在智慧校园中的应用
  13. nginx master-worker工作模式简析
  14. JSP基于web网上作业提交系统
  15. S型速度曲线_博图+变频器+三相异步电机(以堆垛机控制系统举例)
  16. python curl 获取返回值_python-将curl查询转换为请求
  17. 关于0x3f和0x3f3f3f3f
  18. project-clean的作用
  19. PW6513原装现货
  20. A. Alternative Architecture

热门文章

  1. Adobe Photoshop CC 2018 安装失败 安装遇到错误怎么解决
  2. 密室内无人机悬停一天,受地球自转影响后,是否还在原地?
  3. 【oracle作业5】PL/SQL应用
  4. 类似“今天是2008年1月3日 农历丁亥年十一月廿五 星期四”日期的JS
  5. 易推流为什么显示连接服务器失败,live-pusher 推流总是失败?
  6. 对app请求的参数和响应进行rsa加密和解密
  7. 关于PA匹配和LNA匹配的理解
  8. 推荐一个视频放慢软件(应急用)
  9. matlab绘制循环语句的图,运用matlab实现循环语句中的多幅图像显示
  10. 什么是三相四线制,四根线为何也称为三相电,与三根线有什么关系