冒泡排序法

Posted wuyouwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序法相关的知识,希望对你有一定的参考价值。

  直接上代码

  初次版本

技术图片
public static void main(String[] args) {
    int[] ints = {1, 5, 2, 6, 8, 4};
    for (int i = 0; i < ints.length; i++) {
      for (int j = 0; j < ints.length - i - 1; j++) {
        if (ints[j] > ints[j + 1]) {
          int temp = ints[j];
          ints[j] = ints[j + 1];
          ints[j + 1] = temp;
        }
      }
    }
    System.out.println(Arrays.toString(ints));
  }
View Code

优化版本

技术图片
public static void main(String[] args) {
    int[] ints = {11, 5, 2, 6, 8, 4};
    for (int i = 0; i < ints.length; i++) {
      Boolean swap = true;
      for (int j = 0; j < ints.length - i - 1; j++) {
        if (ints[j] > ints[j + 1]) {
          int temp = ints[j];
          ints[j] = ints[j + 1];
          ints[j + 1] = temp;
          swap = false;
        }
      }
      if (swap) {
        break;
      }
    }
    System.out.println(Arrays.toString(ints));
  }
View Code

优化思想是:

  如果发现一次比较中没有发生排序现象则判断是有序数组了。

以上是关于冒泡排序法的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序法

java冒泡排序法代码

c语言冒泡排序法代码一直排序错误,有时只能排前两个,不明白原因,请问究竟哪里写错了,谢谢!

C语言——如何有效记忆冒泡排序法?

数组冒泡排序选择排序二分查找法

JAVA 冒泡排序法的详细解释是啥?