对数组进行遍历,从头依次相邻的俩俩比较,根据比较结果按照自己的排序意愿进行调换,每次遍历都会将最大或者最小的元素排序到其排序后应该在的位置。
最差的情况时间复杂度为O(n2),最好的情况为O(n),所以冒泡排序适合数据量小且部分数据已经经过排序了的情况。
public class Bubbling {
public static void main(String[] args) {
int data[] = {6, 5, 9, 7, 2, 8};
System.out.println("冒泡排序法:");
System.out.println("原始数据为:");
for (int i=0;i<6;i++) {
System.out.print(data[i] + " ");
}
System.out.println();
for(int i=data.length-1;i>0;i--) {
for (int j=0;j<i;j++) {
if(data[j] > data[j+1]) {
int tmp = data[j];
data[j] = data[j+1];
data[j+1] = tmp;
}
}
System.out.print("第" + (6-i) + "次排序后的结果: ");
for (int k=0;k<data.length;k++) {
System.out.print(data[k] + " ");
}
System.out.println();
}
}
}