插入排序

原创 2016年08月31日 16:22:36
package Sort;

public class Insertion_Sort {
    //测试数据

    public static void main(String[] args) {
        int [] a = {3,4,5,6,9,1,0,2,7,8};
        //排序前
        for(int i = 0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
        insertion_sort(a);
        //排序后
        for(int i = 0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
    }
    //插入排序
    public static void insertion_sort(int []a){
        for(int j = 1; j < a.length; j++){
            int key = a[j];
            int i = j-1;
            while(i >= 0 && a[i]>key){
                a[i+1] = a[i];//将大数往后移
                i--;
            }
            a[i+1] = key;//将小数插入
        }
    }
}

 代码中6~18行main方法中为测试数据,第七行定义了一个数组a,第9~11行和15~17行为打印数组。第13行调用插入排序。第20~30为插入排序。
 插入排序将未排序数组分为两堆,一个为排好序堆,另一个为未排序堆。每次从未排序堆中抽取一个数放入排好序堆中,然后着个比较大小,如果比之小,则放入此位置。直至未排序堆无数据。

版权声明:本文为博主原创文章,未经博主允许不得转载。

插入排序算法之C++实现

插入排序,顾名思义其实现形式是插入. 在整个大小不一的队列中, 第一次: 从一个元素开始,将后面相邻的元素(第二个元素)提取出来,放在一个变量中暂时保存,然后和第二个元素前面的那个元素(第一个元素)做...
  • stzy00
  • stzy00
  • 2015年03月12日 23:31
  • 1509

排序算法(五)2-路插入排序

1、 2、 3、 4、 5、 6、 7、 8、
  • wwkaven
  • wwkaven
  • 2014年11月25日 08:07
  • 672

插入排序:2路插入排序原理分析及源码演示

原理2路插入排序是在直接插入排序的基础上进行优化:减少排序过程中元素移动的次数。不过需要额外增加n个辅助空间。关键思路把新增的辅助空间(n个元素的数组),当做一个环对待,再第一个元素插入之后(标记当前...
  • scuyxi
  • scuyxi
  • 2017年04月23日 22:07
  • 318

数据结构例程——插入排序之直接插入排序

本文是[数据结构基础系列(9):排序]中第2课时[插入排序之直接插入排序]的例程。1.直接插入排序#include #define MaxSize 20 typedef int KeyType; ...
  • sxhelijian
  • sxhelijian
  • 2015年11月28日 16:48
  • 3687

插入排序:表插入

所谓插入排序之表排序,是利用静态链表的形式,分两步完成排序。 一,对一个有序的循环链表,插入一新的元素,修改每个节点的后继指针的指向,使顺着这个指针的指向,元素是有序的。在这个过程中,我们不移动或交换...
  • zhangxiangDavaid
  • zhangxiangDavaid
  • 2014年06月02日 20:44
  • 2350

插入排序——深入浅出(图解)

一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将...
  • as02446418
  • as02446418
  • 2015年08月17日 20:46
  • 1742

排序算法(三)——插入排序及改进

插入排序 基本思想 在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数找到相应位置并插入,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 ...
  • u012152619
  • u012152619
  • 2015年08月06日 00:04
  • 2771

带哨兵的插入排序

带有哨兵的插入排序算法的实现
  • ii1245712564
  • ii1245712564
  • 2014年12月22日 14:00
  • 3000

从VB来看-InsertionSort(VB插入排序)

插入排序(Insertion Sort) 它是通过不断将未排序数据插入有序序列,一次次循环加入待排序数据扩充有序序列部分,来达到最终的排序目的。很像我们平时发牌时一张张整牌的过程:我的习惯是先把最左...
  • u010349629
  • u010349629
  • 2016年08月04日 14:56
  • 1231

“深入理解”—插入排序算法

总结下自己对插入排序的理解。 插入排序算法思想:每趟将一个元素,按照其关键字的大小插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。 插入排序包括:直接插入排序、二分插入排序以及希尔排序...
  • qq_25827845
  • qq_25827845
  • 2016年06月21日 17:57
  • 2640
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:插入排序
举报原因:
原因补充:

(最多只允许输入30个字)