单循环实现冒泡排序

本文深入解析冒泡排序算法,通过实例展示排序过程,解释程序如何比较并交换元素以达到排序目的,适合初学者理解排序算法的基本原理。

冒泡排序思路

1.先看张图

是不是看到有点蒙。

  10, 9, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13 

    我们自己一看就知道 3,4,5,6,7,9,10,11,12,13,15  但是程序没有长眼睛 

    程序只能通过每一个数进行判断

  数组的第一个数

    首先是 10和9判断  10是大于9的然后是10和9进行互换 数组变为    9,10, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 9和5判断 9是大于5的 然后 9和5互换 数组变为                  5, 10,9, 3, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 5和3判断 5是大于3的 然后 5和3互换 数组变为                  3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和4判断 3是不大于4的 所以不用替换数组还是                 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和7判断 3是不大于7的 所以不用替换数组还是                 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和6判断 3是不大于6的 所以不用替换数组还是                 3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和19判断 3是不大于19的 所以不用替换数组还是             3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和12判断 3是不大于12的 所以不用替换数组还是             3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和11判断 3是不大于11的 所以不用替换数组还是             3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和15判断 3是不大于15的 所以不用替换数组还是             3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13 

    继续判断 3和13判断 3是不大于13的 所以不用替换数组还是             3, 10, 9,5, 4, 7, 6, 19, 12, 11, 15, 13

数组的第二个数 

      首先是 10和9判断 10是大于9  然后 9和10互换 数组变为             3, 9,10, 5, 4, 7, 6, 19, 12, 11, 15, 13

      继续判断 9和5判断 9是大于5  然后 5和9互换 数组变为                3, 5,10, 9, 4, 7, 6, 19, 12, 11, 15, 13

。。。。。。(如第一张图所示)

最终获得排序数组 3,4,5,6,7,9,10,11,12,13,15 

代码实现

  

运行结果

源码

  1.        //定义个数组名字叫做is

  2.         int[] is = { 10, 9, 5, 3, 4, 7, 6, 19, 12, 11, 15, 13 };

  3.         //记录替换数组的下标

  4.         int count = 0;

  5.         System.out.print("数组未排序");

  6.         for (int i = 0; i < is.length; i++) {

  7.             System.out.print(+is[i]+"\t");

  8.         }

  9.         for (int j = 1; j < is.length; j++) {

  10.             if (is[count] > is[j]) {

  11.                 int temp = is[count];

  12.                 is[count] = is[j];

  13.                 is[j] = temp;

  14.             }

  15.             if (j == is.length - 1) {

  16.                 count++;

  17.                 j = count;

  18.             }

  19.         }

  20.         

  21.         System.out.print("\n"+"数组排序");

  22.         for (int i = 0; i < is.length; i++) {

  23.             System.out.print(is[i] + "\t");

  24.         }

  25.  

  26.  

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值