【排序算法】——冒泡排序


/**
 * 冒泡排序
 *
 * 原理描述:比较相邻两个元素大小,进行交换,将大(小)的元素放到右边,以此类推,直到排序完毕。
 *
 * 平均时间复杂度 O(n^2) 空间复杂度 O(1) 稳定
 *
 * @param array 数组
 * @return int[]
 */
public static int[] bubbleSort(int[] array) {
  if (array.length < 1) {
    return array;
  }
  for (int i = 0; i < array.length; i++) {
    // 没有数据交换提前退出循环
    boolean flag = false;
    for (int j = 0; j < array.length - i -1; j++) {
      if (array[j] > array[j + 1]) {
        int tmp = array[j];
        array[j] = array[j + 1];
        array[j + 1] = tmp;
        flag = true;
      }
    }

    if (!flag) {
      break;
    }
  }

  return array;
}

关注微信公众号:【皮卡战记】

皮卡战记

文章作者: Pikaman
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Pikaman !
评论
 上一篇
多线程面试题 多线程面试题
本文转载自:https://blog.csdn.net/cmyperson/article/details/79610870 目录: 什么是线程? 什么是线程安全和线程不安全? 什么是自旋锁? 什么是Java内存模型? 什么是CAS?
2020-01-21
下一篇 
【排序算法】——开篇 【排序算法】——开篇
0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序
2020-01-20
  目录