排序_简单排序_插入排序

插入排序有三个记录值,其中一个记录着取出来的一个值,也是需要插入的值,从第二个位置开始获取。另外两个初始位置是一样的,从第二个数值开始记录。这个的特点是每一次比较之前,当前假设的数组都是有序的。

public class ArrayIns {
    private long a[];
    private int nElems;
    public ArrayIns(int maxSize) {
        a=new long[maxSize];
        nElems=0;
    }
    //插入
    public void insert(long value) {
        a[nElems++]=value;
    }
    //显示
    public void display() {
        for(int j=0;j<nElems;j++)
            System.out.print(a[j]+" ");
        System.out.println();
    }
    //排序
    public void insertionSort() {
        int out,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 class Test {

    public static void main(String[] args) {
        int maxSize=100;
        ArrayIns arrayBub=new ArrayIns(maxSize);
        arrayBub.insert(77);
        arrayBub.insert(99);
        arrayBub.insert(44);
        arrayBub.insert(55);
        arrayBub.insert(22);
        arrayBub.insert(88);
        arrayBub.insert(11);
        arrayBub.insert(0);
        arrayBub.insert(66);
        arrayBub.insert(33);
        arrayBub.display();
        arrayBub.insertionSort();
        arrayBub.display();

    }

}

 

posted @ 2017-12-24 10:12  S-Mustard  阅读(189)  评论(0编辑  收藏  举报