源代码

public class Main {public static void main(String[] args) {int[] a={20,30,21,35,2,1};//insertSort(a);insertSortWithLookOut(a);for(int i=0;i<a.length;i++){System.out.println(a[i]);}}//不带监视哨public static void insertSort(int[] a){int j;for(int i=1;i<a.length;i++){if(a[i]<a[i-1]){int temp=a[i]; //没有监视哨,将a[i]存入变量temp中for(j=i-1;j>=0 && a[j]>temp;j--){ //每次都要比较j>=0,需要考虑界限的问题a[j+1]=a[j];}a[j+1]=temp;}}}//带监视哨,用该方法时,数组0下标可以设置值为零,遍历数组从下标为1开始public static void insertSortWithLookOut(int[] a){int j;for(int i=2;i<a.length;i++){if(a[i]<a[i-1]){a[0]=a[i];  //将a[i]存入a[0]这个监视哨中for(j=i-1;a[j]>a[0];j--){ //不用每次都要比较j>=0,不用考虑界限问题,数据量大的情况下该方法效率高a[j+1]=a[j];}a[j+1]=a[0];}}}
}

性能相关分析

排序-----直接插入排序------带监视哨和不带监视哨相关推荐

  1. 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结

    一.快速排序的基本思想     设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为: ①分解:     在R[low..high]中任选一个记录作为基准(Pivot ...

  2. c语言排序需要插空的最小次数,C语言数组排序——冒泡排序、选择排序、插入排序...

    一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个--直到比较第n-1个和第n个,此时,每一次比较都 ...

  3. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

    1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...

  4. 基础排序算法(冒泡排序,选择排序,插入排序)

    最近经常调用api中的排序算法,很少自己写了,有时候也只写写快速排序这些比较快的排序,然而刚开始学排序时用的一些基本的排序算法却有点忘了 正好今天Java老师让我们每个人写个选择排序热热手,趁这个机会 ...

  5. 排序---初级排序算法(选择排序、插入排序和希尔排序)

    写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera  Algorithms Part1&2 本文 ...

  6. 算法与数据结构(冒泡排序,选择排序和插入排序的总结)

    冒泡排序,选择排序和插入排序的总结 在规模较小时,或者元素的有序性较高时,插入排序的时间复杂度可以接近 O(n) ,是上述三种排序里表现最好的 一.通过表格我们可以发现,冒泡排序的时间复杂度是要优于选 ...

  7. iOS程序员也要学点算法吧 简单排序之插入排序

    进入到简单排序的第三个排序,插入排序.其实插入排序,和冒泡,还有选择排序都是比较排序算法的一种,比较效率基本也是O(N²) 但是插入排序,效率基本比冒泡快一倍,选择快一点. 有一个已经有序的数据序列, ...

  8. C语言排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)

    参考:C语言五大排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)动态演示 作者:一只青木呀 发布时间: 2020-09-09 20:18:43 网址:https://blog.csdn.net/ ...

  9. 图解选择排序与插入排序

    上一篇详述了冒泡排序及其优化,有兴趣的可以看看: 如何优化冒泡排序? 一.选择排序(SelectionSort) 算法思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩 ...

  10. Python排序算法(一)冒泡排序、选择排序、插入排序

    今天总结一下Python中的排序算法.这篇文章有的排序算法是:冒泡排序.选择排序.插入排序. 冒泡排序 先看一下代码. ''' 冒泡排序 '''def bubble_sort(aList):n = l ...

最新文章

  1. 2017年8月Science肠道菌群研究
  2. 千万级通用的分页存储过程
  3. 写一个脚本定时自动备份mysql到指定目录
  4. 获取oracle 表字段描述,几种获取oracle用户表字段信息的方法
  5. linux学习心得(一)
  6. 计算机科学与技术文科可以学么,文科生成绩一般,大学可以选择计算机吗?
  7. MySQL数据库、数据表和字段字符集查询、修改和配置
  8. MySQL-5.6.x二进制版本安装记录
  9. jmu-python-函数-找钱_6-1 jmu-python-杨辉三角
  10. 如何进行 JVM 调优
  11. Eclipse 启动提示java虚拟机启动失败,“Failed to create the Java Virtual Machine”-------解决方法
  12. 什么是gc和gc的工作原理
  13. 体验说 | 快速谷歌浏览器翻译插件的菜单栏工具
  14. python storm连接mysql_Python ORM Storm 源码修改
  15. 北京化工大学计算机复试面试题,北京化工大学综合素质测试面试题历年总结
  16. 青木的书籍,--股票
  17. 【2018NOIP普及组】T2:龙虎斗 试题解析
  18. 计算机b类核心期刊有哪些,B类及以上期刊有哪些
  19. Java简单投票系统
  20. JavaScript名字的由来

热门文章

  1. 论文笔记:Fast AutoAugment
  2. 2019年一级消防工程师备考八步法
  3. 终于看完无懈可击之蓝色梦想了
  4. whaleCTF MISC_Writeup(姿势大全)
  5. JavaScript基础语法笔记
  6. 心血来潮:重新温习一下C语言的指针
  7. 3D微信启动仪式,扫码启动大屏触摸启动头像汇聚企业logo科技感酷炫效果活动策划发布会创意跳跃互动tioyo
  8. PyTorch 深度学习实践 第13讲
  9. 网页脚本编程学习笔记
  10. 计算机867怎么学,2018年考研湖南大学867计算机系统考试大纲