排序_簡單排序_選擇排序
阿新 • • 發佈:2017-12-24
排序 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(); } }
排序_簡單排序_選擇排序