冒泡排序
发布日期:2021-05-10 07:33:12 浏览次数:22 分类:精选文章

本文共 976 字,大约阅读时间需要 3 分钟。

冒泡排序是一种简单有效的排序算法,通过反复交换相邻元素,使最大的元素逐渐“冒”到最后的位置,直到数组排序完成。它的核心思想是通过有限次数的比较和交换,实现元素的位置调整。

以下是一个实现冒泡排序的C代码示例:

#include 
int pai(int a[], int len) {
for (int k = 0; k < len - 1; k++) {
int ischang = 0;
for (int i = 0; i < len - k - 1; i++) {
if (a[i] > a[i + 1]) {
// 交换元素位置
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
ischang = 1; // 标记是否发生了交换
}
}
if (!ischang) {
break; // 无需继续当进一步的交换
}
}
return a;
}
int main() {
int a[] = {1, 5, 6, 9, 8, 7, 2, 3, 12, 46, 56, 78, 98};
int len = sizeof(a) / sizeof(a[0]);
pai(a, len);
for (int i = 0; i < len; i++) {
printf("%d ", a[i]);
}
return 0;
}

代码实现了冒泡排序的基本逻辑,主要包括以下步骤:

  • 外层循环:控制每次遍历的范围,逐步将最大的元素移到正确位置
  • 内层循环:遍历数组,比较相邻元素并进行交换
  • 交换标记:跟踪是否发生了交换,避免无用循环
  • 优化判断:当没有发生交换时,提前终止排序过程
  • 通过这种方式,冒泡排序能够有效地对数组进行排序,时间复杂度为O(n²),空间复杂度为O(1),适合对小规模数据进行排序。

    上一篇:斐波那契数列 递归
    下一篇:空心三角

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年05月11日 00时51分17秒