冒泡排序--(原理和自己的例子)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值