【十大排序】深入浅出冒泡排序

简介: 【十大排序】深入浅出冒泡排序

排序系列传递门

1. 冒泡的思想

  • 基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。
  • 直观表达,每一趟遍历,将一个最大的数移到序列末尾。

2. 算法描述

  1. 比较相邻的元素,如果前一个比后一个大,交换之。
  2. 第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
  3. 第二趟将第二大的数移动至倒数第二位
  4. ········因此需要n-1趟

3. 代码实现

public void BubbleSort(int[] nums) {
    for (int i = 0; i < nums.length - 1; i++) {
      for (int j = 0; j < nums.length - 1 - i; j++) {
        if (nums[j] > nums[j + 1]) {
          int temp = nums[j];
          nums[j] = nums[j + 1];
          nums[j + 1] = temp;
        }
      }
    }
  }

4. 复杂度

  • 时间复杂度: O(N^2)
  • 空间复杂度: O(1)
  • 稳定性:稳定


相关文章
|
机器学习/深度学习 算法 搜索推荐
八大排序(二)--------冒泡排序
八大排序(二)--------冒泡排序
37 1
|
5月前
|
存储 搜索推荐 算法
十大排序算法(java实现)(二)
十大排序算法(java实现)(二)
|
5月前
|
搜索推荐 算法 Java
十大排序算法(java实现)(一)
十大排序算法(java实现)(一)
|
6月前
|
算法
【六大排序详解】终篇 :冒泡排序 与 快速排序
冒泡排序如同泡泡上升一样,逐个逐个向上冒,一个接一个的冒上去。两两比较,较大者(较小者)向后挪动。全部遍历一遍即可完成排序
45 2
|
6月前
|
搜索推荐 测试技术
【六大排序详解】开篇 :插入排序 与 希尔排序
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 排序存在稳定性,稳定性是评估排序的重要标准。
40 1
|
6月前
|
搜索推荐 算法
【八大经典排序算法】冒泡排序
【八大经典排序算法】冒泡排序
36 0
|
6月前
|
搜索推荐 算法
【八大经典排序算法】选择排序
【八大经典排序算法】选择排序
24 0
|
6月前
|
搜索推荐 算法 索引
【八大经典排序算法】快速排序
【八大经典排序算法】快速排序
54 0
|
算法 搜索推荐
【八大排序(七)】归并排序初级篇-递归版
【八大排序(七)】归并排序初级篇-递归版
|
6月前
|
存储 搜索推荐 算法
十大基础排序算法
十大基础排序算法