排序_简单排序_冒泡排序

冒泡排序有三个记录值,其中的两个指向需要比较的两个对象,其中一个指向需要排序的数值的末尾值。
in,in+1,out

public class ArrayBub {
    private long a[];
    private int nElems;
    public ArrayBub(int max) {
        a=new long[max];
        nElems=0;
    }
    public void insert(long value) {
        a[nElems]=value;
        nElems++;
    }
    public void display() {
        for(int j=0;j<nElems;j++) {
            System.out.print(a[j]+" ");
        }
        System.out.println();
    }
    //冒泡排序的方法
    public void bubbleSort() {
        int out,in;//out记录需要排序的数组的末尾值
        for(out=nElems-1;out>1;out--) {
            //比较两个对象的大小(in和in+1)
            for(in=0;in<out;in++) {
                if(a[in]>a[in+1])
                    swap(in, in+1);
            }
        }
    }
    //交换两个对象的值
    private void swap(int one,int two) {
        long temp=a[one];
        a[one]=a[two];
        a[two]=temp;
    }
    
    
    
    
    
    

}
public class Test {

    public static void main(String[] args) {
        int maxSize=100;
        ArrayBub arrayBub=new ArrayBub(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.bubbleSort();
        arrayBub.display();

    }

}

 

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