交换排序之冒泡排序(Bubble Sort)

本文最后更新于:3 个月前

本篇文章主要总结了冒泡排序的相关内容,包括选择排序的概念,特点和完整实现代码。

冒泡排序

过程

从后往前两两比较相邻元素值,若为逆序就交换,直到序列比较完成。每一趟可以使一个元素移动到最终位置,已经确定的元素,之后无需再次对比。若一趟下来未发生交换,则算法可提前结束。

特点

  • 空间复杂度:O(1)
  • 平均时间复杂度:O(n^2)
  • 算法稳定,顺序表和链表都可用

完整实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* 冒泡排序 */
void BubbleSort(int * arr ,int len)//升序排列
{
for (int i = 0; i < len-1; i++)
{
for (int j = 0; j < len - 1 - i; j++) //每次确定一个最大值在后面
{
if (arr[j] > arr[j+1]) //前一个比后一个大就交换
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

补充内容

排序动画演示


交换排序之冒泡排序(Bubble Sort)
https://superlovelace.top/2023/09/29/BubbleSort/
作者
棱境
发布于
2023年9月29日
更新于
2023年11月9日
许可协议