插入排序

来源:互联网 发布:淘宝网真丝围巾批发 编辑:程序博客网 时间:2024/06/06 16:50
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