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