已知一个数组 60、28、41、39、6 、18 、14、28、49、31 利用插入排序算法进行排序

插入排序是一个运行时间为O(N²)的排序算法。

算法思想

 60、28、41、39、6 、18 、14、28、49、31  数组元素

0、  1、  2、  3、  4、 5、   6、  7、  8、  9    数组下标

先将index[0]与index[1]有序,可视为index[1]为那个 插入元素

其次将index[0]、index[1]、index[2]有序,将index[2]视为 插入元素

再其次将index[0]、index[1]、index[2]、index[3]有序,将index[3]视为 插入元素

...........

插入排序始终保持数组左侧有序,将下标从左往右依次移动,使得数组依次有序。因此对于 数组在排序之前就局部有序, “插入排序的效率将会提高”会比冒泡排序更好。

以下采用java实现

public class InsertOrder {

private int[] Array;

private int index;

private int maxIndex;

public InsertOrder(int size) {
         this.Array = new int[size];
         this.index = 0;
         this.maxIndex = size-1;
}

public void insert(int i) {
     if(this.maxIndex<this.index) {
           System.out.println("数组已满");
     }else {
           this.Array[this.index++] = i;
     }
}

public void order() {
        for(int i=1; i<=this.maxIndex;i++) {
               int temp = this.Array[i];//插入值
               int tempIndex = i;
               while(tempIndex>0&&this.Array[tempIndex-1]>temp) {
                         this.Array[tempIndex] = this.Array[tempIndex-1];
                         tempIndex=tempIndex-1;
                }
                this.Array[tempIndex]=temp;
         }
}

public void show() {
        for (int i : Array) {
             System.out.println(i);
         }
}

}

最终结果6、14、18、28、28、31、39、41、49、60

插入排序 思想 JAVA实现的更多相关文章

  1. java 用插入排序思想,对不规则数组排序。

    知道插入排序后,无意中发现,用插入排序思想,对不规则数组排序的排序 发现和许多大神写的不一样,大神写的简洁多了.--------

  2. 直接插入排序之Java实现

    直接插入排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; import java.util.Arrays; /** * * @title Insert ...

  3. 排序算法入门之插入排序(java实现)

    插入排序思想:相当于插入元素,对于第i个元素,i之前的元素已经是有序的了,这时候将第i个元素依次与前面元素比较,插入合适的位置.

  4. 基本算法思想Java实现的详细代码

    基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为 ...

  5. 33.JAVA编程思想——JAVA IO File类

    33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...

  6. 排序系列 之 折半插入排序算法 —— Java实现

    基本思想: 折半插入算法是对直接插入排序算法的改进,排序原理同直接插入算法: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素:排序过程即每次从无序表中 ...

  7. 排序系列 之 直接插入排序算法 —— Java实现

    直接插入排序算法 基本思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素:排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的 ...

  8. 插入排序算法java

    转自https://blog.csdn.net/jianyuerensheng/article/details/51254415 1.基本思想 直接插入排序的基本操作是将一个记录插入到已经排好的有序表 ...

  9. Java基础(47):插入排序的Java封装(含原理,可运行,哨兵位的理解见VisualGo上面的动态分析)

    直接插入排序(Straight Insertion Sorting)的基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使 ...

随机推荐

  1. JS 语法大全

    来源http://blog.csdn.net/newegg2009/article/details/6230582 js语法2008年03月19日 星期三 11:14一.js的数据类型和变量 Java ...

  2. jQuery的event事件

    1.冒泡和默认行为 <div class="aa"> <div class="bb"> <div class="cc&q ...

  3. Halcon中xld的常见特征的含义总结

    如下图:

  4. sqlserver2014新特性

    1.SQL Server 2014新特性探秘(1)-内存数据库 在传统的数据库表中,由于磁盘的物理结构限制,表和索引的结构为B-Tree,这就使得该类索引在大并发的OLTP环境中显得非常乏力,虽然有很 ...

  5. idea如何设置注释作者信息

    什么情况下使用? 在建一个新的类的时候   有注释信息  如下图所示 实现步骤 1  打开idea后   点击File后 选择Settings..如下图 2 打开后打开 file and code t ...

  6. 多个docker 挂载VOLUME的心得

    假如有一个mysql镜像 在Dockerfile中制定VOLUME /var/lib/mysql 那么当执行: docker run -d -e MYSQL_ROOT_PASSWORD=root -- ...

  7. mvc数组绑定-jquery ajax

    var list=[];//数组 list[0]=1001; list[1]=1002; list[1]=1003; var json_data = { selected: list}; $.ajax ...

  8. 利用Word发布文章到博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  9. ADO接口之_RecordsetPtr

    转自:http://hi.baidu.com/%CE%D2%B6%CF%C1%CB%CB%BC%C4%EE/blog/item/e057c526c6af6c29c995596e.html _Recor ...

  10. 树莓派3下安装TL-WN722N无线网卡驱动

    最近在搞树莓派,我的是国产的树莓派3卡片电脑,想整成一个无线加有线的路由器(树莓派3.TL-WN722N无线网卡.集线器)或者是搭个web认证的WIFI钓鱼热点玩玩. 一开始就遇到问题了,连无线网卡的 ...