冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序
public class ArrayBub {
private int[] array;
private int nElements;
public ArrayBub(int max) {
this.array = new int[max];
}
public void insert(int element) {
array[nElements] = element;
nElements ++;
}
public void bubbleSort() {
for(int i = nElements - 1 ; i > 0 ; i --) {
for(int j = 0 ; j < i ; j ++) {
if(array[j] > array[j + 1]) {
swap(j, j + 1);
}
}
}
}
private void swap(int left, int right) {
int temp = array[left];
array[left] = array[right];
array[right] = temp;
}
public int[] getArray() {
return array;
}
public static void main(String[] args) {
ArrayBub ab = new ArrayBub(5);
ab.insert(4);
ab.insert(3);
ab.insert(5);
ab.insert(2);
ab.insert(1);
ab.bubbleSort();
for(int i : ab.getArray()) {
System.out.println("i:" + i);
}
}
}
参考:
《Java数据结构与算法》