插入排序

原创 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++实现插入排序

  • 2017年11月02日 22:26
  • 712B
  • 下载

插入排序(C语言实现)

  • 2014年11月30日 16:12
  • 926B
  • 下载

算法学习—001—js实现插入排序—insertSort

插入排序:对于少量元素比较有效。 工作方式:像排序一手扑克牌,开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从...

插入排序的方法

  • 2013年07月10日 12:12
  • 31KB
  • 下载

直接插入排序的C实现

  • 2013年05月16日 11:20
  • 495B
  • 下载

数据结构基础(3) --Permutation & 插入排序

Permutation(排列组合) 排列问题: 设R = {r1, r2, ... , rn}是要进行排列的n个元素, Ri = R-{ri}; 集合X中元素的全排列记为Permutati...

插入排序源代码

  • 2013年07月31日 08:39
  • 585B
  • 下载

直接插入排序

  • 2014年03月25日 15:22
  • 1.02MB
  • 下载

链表 操作3 双向链表的 插入排序法

昨天做了某公司的数据结构笔试题: 其中一个小功能 是要求对 双向链表进行 快速排序。   思想: 借用了  nginx 链表排序思想  head   prev next  假设: 从小到大排序 从...

插入排序的算法代码和描述

  • 2013年12月09日 09:14
  • 20KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:插入排序
举报原因:
原因补充:

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