单循环实现冒泡排序

冒泡排序思路

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.