1. 程式人生 > >排序_簡單排序_選擇排序

排序_簡單排序_選擇排序

排序 bsp array 數據 log 其中 test args pri

選擇排序是有三個記錄值,其中一個記錄值標記著需要比較的數組的第一個值,也是變換後的最小值。其中兩個記錄值記錄需要比較的兩個對象,而且記錄臨時最小值的位置和記錄另一個還未比較的數據。

public class ArraySel {
    private long a[];
    private int nElems;
    public ArraySel(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 selectionSort() { int out,in,min; for(out=0;out<nElems;out++) { min=out;//每一次循環,out與min的位置都一樣
//需要比較的另一個對象的開始位置是第二個,即out+1或者min+1 for(in=out+1;in<nElems;in++) { if(a[in]<a[min]) min=in; } //比較循環完成後,就找到一次外層循環的最小值 swap(out, min); } } 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;
        ArraySel arrayBub=new ArraySel(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.selectionSort();
        arrayBub.display();

    }

}

排序_簡單排序_選擇排序