wind14的博客

蓝色天空下,行走的是我的梦!

插入排序
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为插入排序。
 插入排序将未排序数组分为两堆,一个为排好序堆,另一个为未排序堆。每次从未排序堆中抽取一个数放入排好序堆中,然后着个比较大小,如果比之小,则放入此位置。直至未排序堆无数据。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wind14/article/details/52386269
文章标签: 插入排序
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

插入排序

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭