冒泡排序原理:基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:
1.“编程复杂度”很低,很容易写出代码;
2.具有稳定性,
java代码实现
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int[] data = new int[]{5,1,6,2,7,8,9,3,4};
for (int i = 0; i < data.length; i++) {
for (int j = i+1; j < data.length; j++) {
if(data[j] < data[j-1]) {
int temp = data[j];
data[j] = data[j-1];
data[j-1] = temp;
}
}
}
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
}
图解: