关闭

插入排序

标签: 插入排序
63人阅读 评论(0) 收藏 举报
分类:
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为插入排序。
 插入排序将未排序数组分为两堆,一个为排好序堆,另一个为未排序堆。每次从未排序堆中抽取一个数放入排好序堆中,然后着个比较大小,如果比之小,则放入此位置。直至未排序堆无数据。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11572次
    • 积分:915
    • 等级:
    • 排名:千里之外
    • 原创:79篇
    • 转载:1篇
    • 译文:4篇
    • 评论:0条