冒泡排序(C语言)

cpp 复制代码
void BubbleSort(int arr[], int len)
{
    int i, j, temp;
    for (i = 0; i < len; i++)
    {
        for (j = len - 1; j >= i; j--)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

优化:

设置标志位flag,如果发生了交换flag设置为true(1);如果没有交换就设置为false(0)。

这样当一轮比较结束后如果flag仍为false,即:这一轮没有发生交换,说明数据的顺序已经排好,没有必要继续进行下去。

cpp 复制代码
void BubbleSort(int arr[], int len)
{
    int i, j, temp, flag = 1;
    for (i = 0; i < len && flag; i++)
    {
        flag = 0;
        for (j = len - 1; j >= i; j--)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                flag = 1;
            }
        }
    }
}

时间复杂度:

相关推荐
Miraitowa_cheems19 小时前
LeetCode算法日记 - Day 73: 最小路径和、地下城游戏
数据结构·算法·leetcode·职场和发展·深度优先·动态规划·推荐算法
野蛮人6号19 小时前
力扣热题100道之560和位K的子数组
数据结构·算法·leetcode
Swift社区20 小时前
LeetCode 400 - 第 N 位数字
算法·leetcode·职场和发展
fengfuyao98520 小时前
BCH码编译码仿真与误码率性能分析
算法
Kratzdisteln20 小时前
【C语言】Dev-C++如何编译C语言程序?从安装到运行一步到位
c语言·c++
小白不想白a21 小时前
每日手撕算法--哈希映射/链表存储数求和
数据结构·算法
剪一朵云爱着21 小时前
力扣2080. 区间内查询数字的频率
算法·leetcode
落日漫游21 小时前
数据结构笔试核心考点
java·开发语言·算法
Doro再努力21 小时前
数据结构04:力扣顺序表3道例题解题思路与代码实现
c语言·数据结构
疯狂吧小飞牛21 小时前
Lua C API 中的注册表介绍
java·c语言·lua