/**
* 冒泡排序
*
*/
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 i = 0; i < nElems; i++) {
System.out.print(a[i]+" ");
}
System.out.println("");
}
public void bubbleSort(){
int out,in;
for (out=nElems-1; out >1; out--) {
for (in=0; in < out; in++) {
if(a[in]>a[in+1]){
swap(in, in+1);
}
}
}
}
/**
* 數值大的後移
* @param one
* @param two
*/
public void swap(int one, int two){
long temp = a[one];
a[one]=a[two];
a[two]=temp;
}
}
/**
* 冒泡排序實例
*/
public class BubbleSortApp{
public static void main(String[] args) {
int maxSize = 100;
ArrayBub arr;
arr = new ArrayBub(maxSize);
arr.insert(77);
arr.insert(88);
arr.insert(12);
arr.insert(53);
arr.insert(23);
arr.insert(17);
arr.insert(99);
arr.insert(58);
arr.insert(1);
arr.insert(49);
System.out.println("排序前:");
arr.display();
arr.bubbleSort();
System.out.println("排序後:");
arr.display();
}
}