惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
罗磊的独立博客
B
Blog
博客园_首页
A
About on SuperTechFans
有赞技术团队
有赞技术团队
V
V2EX
U
Unit 42
I
InfoQ
IT之家
IT之家
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
H
Help Net Security

博客园 - Eagle6970

ASP.NET Core实现MCP Streamable HTTP 豆包生成C#微博API HTTP调用实例代码 豆包生成C#即梦API HTTP调用实例代码 SQL Server - sp_spaceused 子网掩码和IP地址范围 [VS Code] Run JavaScript [VS Code] Copy所有包含关键字的行 [数据结构学习笔记25] 归并排序(Merge Sort) [VS Code] 使用dotnet CLI安装和管理NuGet包 [数据结构学习笔记24] 选择排序(Selection Sort) [数据结构学习笔记23] 插入排序(Insertion Sort) [数据结构学习笔记21] 快速排序(Quicksort) [数据结构学习笔记20] 深度优先搜索(DFS)和广度优先搜索(BFS) [数据结构学习笔记19] 二叉树遍历(Binary Tree Traversal) [数据结构学习笔记18] 二分查找(Binary Search) [数据结构学习笔记17] 线性查找(Linear Search) [数据结构学习笔记16] 汉诺塔(Towers of Hanoi) [数据结构学习笔记15] 斐波那契数列(Fibonacci) [数据结构学习笔记14] 递归简介(Recursion)
[数据结构学习笔记22] 冒泡排序(Bubblesort)
Eagle6970 · 2025-02-11 · via 博客园 - Eagle6970

冒泡排序(Bubblesort)是性能比较差的排序方法。

思想,从头开始,依次往后两两比较,如果前面的比后面的大,那么把两元素调换。这样一轮下来,最大的数会到最后面。第二轮类似,结果第二大的数会到倒数第二的位置,然后第三轮,直到排序完成。

举例:

6,2,0,9

第一遍

2,6,0,9

2,0,6,9

第二遍

0,2,6,9

到这里其实已经排序结束

但是冒泡排序还是会从头开始第三遍的比较,确保前面的数列排序正确。

代码(javascript)

function bubbleSort(input) {
  let swapSignal = true;
  while (swapSignal) {
     swapSignal = false;
     for (let i = 0; i < input.length - 1; i++) {
        if (input[i] > input[i + 1]) {
            let temp = input[i];
            input[i] = input[i+1];
            input[i+1] = temp;
            swapSignal = true;
         }
     }
  }    
}

冒泡排序的时间复杂度是n^2。我们要避免使用冒泡排序。