结合舞蹈更易理解的算法--插入排序算法[java代码]

来源:互联网 发布:h.323 端口 编辑:程序博客网 时间:2024/05/16 08:05

算法舞蹈视频:http://t.cn/hros0W 

java代码实现:

/** * 插入排序 * @author hsy * */public class InsertSort{    private long[] a;    private int nElems;        public InsertSort( int max)    {        super();        this.a = new long[max];        nElems = 0;    }        /**     * 向数组中插入数据     * @param value     */    public void insert(long value){        a[nElems] = value;        nElems++;    }        /**     * 打印数组     *     */    public void display(){        for(int i=0;i<nElems;i++){            System.out.print(a[i]+",");        }        System.out.println("");    }        /**     * 排序     *     */    public void insertSort(){        int out;        int in;        for(out=1;out<nElems;out++){            long temp = a[out];           in = out;           while(in>0 && a[in-1]>=temp){               a[in] = a[in-1];               --in;           }           a[in] = temp;        }    }        public static void main(String[] args){        int max = 100;        InsertSort arr = new InsertSort(max);                arr.insert(10);        arr.insert(5);        arr.insert(45);        arr.insert(8);        arr.insert(34);        arr.insert(78);        arr.insert(22);        arr.insert(68);        arr.insert(82);        arr.insert(53);        arr.insert(7);        arr.insert(99);        arr.insert(57);        arr.insert(72);                arr.display();        long start = System.currentTimeMillis();        arr.insertSort();        long end = System.currentTimeMillis();        System.out.println("排序耗时:"+(end-start));        arr.display();    }    }

控制台打印:

10,5,45,8,34,78,22,68,82,53,7,99,57,72,排序耗时:05,7,8,10,22,34,45,53,57,68,72,78,82,99,