起泡排序:
排序方法:相邻两个元素的关键字进行比较,小的元素向上冒,大的元素向下沉
起泡排序示例:
| 初始 关键字 |
第一趟 排序后 |
第二趟 排序后 |
第三趟 排序后 |
第四趟 排序后 |
第五趟 排序后 |
第六趟 排序后 |
|---|---|---|---|---|---|---|
| 49 | 38 | 38 | 38 | 38 | 13 | 13 |
| 38 | 49 | 49 | 49 | 13 | 27 | 27 |
| 65 | 65 | 65 | 13 | 27 | 38 | 38 |
| 97 | 76 | 13 | 27 | 49 | 49 | 49 |
| 76 | 13 | 27 | 49 | 49 | 49 | 49 |
| 13 | 27 | 49 | 65 | 65 | 65 | 65 |
| 27 | 49 | 76 | 76 | 76 | 76 | 76 |
| 49 | 97 | 97 | 97 | 97 | 97 | 97 |
代码实现:
说明:本博客的代码实现贴近数据结构(C语言版) 课本代码风格,使用抽象数据类型。

本文详细介绍了起泡排序的工作原理,并提供了C语言的代码实现。通过示例和算法分析,展示了起泡排序的时间复杂度为O(n^2),适用于小规模数据或局部有序的数据排序。同时提出了对算法的改进思考,如链表实现和不同比较方向的影响。

47万+





