冒泡排序(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;
            }
        }
    }
}

时间复杂度:

相关推荐
Snow_day.6 小时前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
m0_561359676 小时前
C++模块接口设计
开发语言·c++·算法
wengqidaifeng6 小时前
探索数据结构(二):空间复杂度
c语言·开发语言·数据结构
难得的我们6 小时前
单元测试在C++项目中的实践
开发语言·c++·算法
Once_day7 小时前
代码训练总结(1)算法和数据结构的框架思维
数据结构·算法
鹿角片ljp7 小时前
力扣125.验证回文串-双指针
数据结构·算法
We་ct7 小时前
LeetCode 30. 串联所有单词的子串:从暴力到高效,滑动窗口优化详解
前端·算法·leetcode·typescript
-Try hard-7 小时前
数据结构|概念及单向有头链表
数据结构·算法·vim
历程里程碑7 小时前
子串----和为K的子数组
大数据·python·算法·leetcode·elasticsearch·搜索引擎·哈希算法
Aaron15887 小时前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理