基本思想:对于给定的n 个记录,从第一个记录开始一次与相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置。进行一轮比较和换位厚,n个记录中的最大记录将位于第n 位,然后对前n-1个记录进行第二次比较,知道只剩下一个记录为止。
例子:数组{36,25,48,12,25,65,43,57}
初始状态[36,25,48,12,25,65,43,57]
1趟排序 [25 36 12 25 48 43 57] 65
2趟排序 [25 12 25 36 43 48] 57 65
3趟排序 [12 25 25 36 43] 48 57 65
4趟排序 [12 25 25 36] 43 48 57 65
5趟排序 [12 25 25] 36 43 48 57 65
6趟排序 [12 25] 25 36 43 48 57 65
7趟排序 [12] 25 25 36 43 48 57 65
代码
public class MaxMin{
public static void BubbleSort(int array[]){
for(int i=0;i<array.lenght;i++){
for(int j=array.lenght-1;--j){
if(array[j]<array[j-1]){
int temp = array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
}
public static void main(String[] args){
int a[]={1,5,3,7,6,9,34};
BubbleSort(a);
for(int i=0;i<a.lenght;i++){
System.out.println(a[i]+" ");
}
}