package com.one;
public class PaixuMaopao {
/**
* @Author lushuaiyin
* 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,
* 将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,
* 将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,
* 如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,
* 将最大的数放到了最后。在第二趟:仍从第一对数开始比较
* (因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),
* 将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的)
* ,第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
* 如此下去,重复以上过程,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
*/
public static void main(String[] args) {
int[] source={23,5,12,59,78,21,100,79,66};
int len=source.length;
int tang=0;
for(int j=0;j<source.length;j++){
for(int i=0;i<len-1;i++){
if(source[i]>source[i+1]){
int temp=source[i+1];
source[i+1]=source[i];
source[i]=temp;
System.out.println(source[i+1]+"交换位置"+source[i]);
}
}
System.out.println("第"+(j+1)+"趟,找到倒数第"+(j+1)+"大的数是:"+source[len-1]);
System.out.print("现在排列顺序是---");
for(int d=0;d<source.length;d++){
System.out.print(":"+source[d]);
}
System.out.println();
System.out.println("------------------分割------------------");
len--;
tang++;
}
System.out.println("共排序了"+tang+"趟");
System.out.println("排序后顺序是:");
for(int k=0;k<source.length;k++){
System.out.print("-"+source[k]);
}
}
}
控制台打印:
23交换位置5
23交换位置12
78交换位置21
100交换位置79
100交换位置66
第1趟,找到倒数第1大的数是:100
现在排列顺序是---:5:12:23:59:21:78:79:66:100
------------------分割------------------
59交换位置21
79交换位置66
第2趟,找到倒数第2大的数是:79
现在排列顺序是---:5:12:23:21:59:78:66:79:100
------------------分割------------------
23交换位置21
78交换位置66
第3趟,找到倒数第3大的数是:78
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第4趟,找到倒数第4大的数是:66
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第5趟,找到倒数第5大的数是:59
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第6趟,找到倒数第6大的数是:23
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第7趟,找到倒数第7大的数是:21
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第8趟,找到倒数第8大的数是:12
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
第9趟,找到倒数第9大的数是:5
现在排列顺序是---:5:12:21:23:59:66:78:79:100
------------------分割------------------
共排序了9趟
排序后顺序是:
-5-12-21-23-59-66-78-79-100