基本思想:将待排序的n个元素垂直排成一列,依次比较上下相邻的两个元素,如果上面的数大于下面的,则两者交换,第一趟冒泡排序的结果使得关键字最大的记录被放在最后一个位置上,然后第二趟起泡排序对前n-1个记录进行同样操作,结果是关键字次大的记录被安放在第n-1个位置上,以此类推共进行n-1趟排序。
特点:稳定排序,时间复杂度O(n^2).
算法实现:
public class BubbleSort {
public void bubbling(int[] a){
int length=a.length;
Boolean flag=false;
int t;
for(int n=1;n<=length-1;n++){
flag=false;
for(int i=0;i<length-n;i++){
t=a[i];
int j=i+1;
if(t>a[j]){
a[i]=a[j];
a[j]=t;
flag=true;
}
}
if(flag==false){
break;
}
}
}
public static void main(String[] args){
int a[]={25,36,12,58,69,25,97,56};
BubbleSort bs=new BubbleSort();
bs.bubbling(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}