排序-----直接插入排序------带监视哨和不带监视哨
源代码
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];}}}
}
性能相关分析
排序-----直接插入排序------带监视哨和不带监视哨相关推荐
- 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结
一.快速排序的基本思想 设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为: ①分解: 在R[low..high]中任选一个记录作为基准(Pivot ...
- c语言排序需要插空的最小次数,C语言数组排序——冒泡排序、选择排序、插入排序...
一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个--直到比较第n-1个和第n个,此时,每一次比较都 ...
- 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序
1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...
- 基础排序算法(冒泡排序,选择排序,插入排序)
最近经常调用api中的排序算法,很少自己写了,有时候也只写写快速排序这些比较快的排序,然而刚开始学排序时用的一些基本的排序算法却有点忘了 正好今天Java老师让我们每个人写个选择排序热热手,趁这个机会 ...
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- 算法与数据结构(冒泡排序,选择排序和插入排序的总结)
冒泡排序,选择排序和插入排序的总结 在规模较小时,或者元素的有序性较高时,插入排序的时间复杂度可以接近 O(n) ,是上述三种排序里表现最好的 一.通过表格我们可以发现,冒泡排序的时间复杂度是要优于选 ...
- iOS程序员也要学点算法吧 简单排序之插入排序
进入到简单排序的第三个排序,插入排序.其实插入排序,和冒泡,还有选择排序都是比较排序算法的一种,比较效率基本也是O(N²) 但是插入排序,效率基本比冒泡快一倍,选择快一点. 有一个已经有序的数据序列, ...
- C语言排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)
参考:C语言五大排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)动态演示 作者:一只青木呀 发布时间: 2020-09-09 20:18:43 网址:https://blog.csdn.net/ ...
- 图解选择排序与插入排序
上一篇详述了冒泡排序及其优化,有兴趣的可以看看: 如何优化冒泡排序? 一.选择排序(SelectionSort) 算法思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩 ...
- Python排序算法(一)冒泡排序、选择排序、插入排序
今天总结一下Python中的排序算法.这篇文章有的排序算法是:冒泡排序.选择排序.插入排序. 冒泡排序 先看一下代码. ''' 冒泡排序 '''def bubble_sort(aList):n = l ...
最新文章
- 2017年8月Science肠道菌群研究
- 千万级通用的分页存储过程
- 写一个脚本定时自动备份mysql到指定目录
- 获取oracle 表字段描述,几种获取oracle用户表字段信息的方法
- linux学习心得(一)
- 计算机科学与技术文科可以学么,文科生成绩一般,大学可以选择计算机吗?
- MySQL数据库、数据表和字段字符集查询、修改和配置
- MySQL-5.6.x二进制版本安装记录
- jmu-python-函数-找钱_6-1 jmu-python-杨辉三角
- 如何进行 JVM 调优
- Eclipse 启动提示java虚拟机启动失败,“Failed to create the Java Virtual Machine”-------解决方法
- 什么是gc和gc的工作原理
- 体验说 | 快速谷歌浏览器翻译插件的菜单栏工具
- python storm连接mysql_Python ORM Storm 源码修改
- 北京化工大学计算机复试面试题,北京化工大学综合素质测试面试题历年总结
- 青木的书籍,--股票
- 【2018NOIP普及组】T2:龙虎斗 试题解析
- 计算机b类核心期刊有哪些,B类及以上期刊有哪些
- Java简单投票系统
- JavaScript名字的由来