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

时间复杂度:

相关推荐
wen__xvn18 小时前
基础算法集训第20天:Dijkstra
算法·图论
Yiyaoshujuku19 小时前
疾病的发病率、发病人数、患病率、患病人数、死亡率、死亡人数查询网站及数据库
数据库·人工智能·算法
wen__xvn19 小时前
基础算法集训第18天:深度优先搜索
算法·深度优先·图论
17(无规则自律)19 小时前
【CSAPP 读书笔记】第一章:计算机系统漫游
linux·c语言·arm开发·嵌入式硬件·学习·ubuntu
WYH28719 小时前
为什么在cubeide里勾选了can1,生成的工程里没有can.c?
c语言·开发语言
曾浩轩19 小时前
C语言学习记录——BC113 数字三角形
c语言·学习
jiang_changsheng19 小时前
comfyui节点插件笔记总结新增加
人工智能·算法·计算机视觉·comfyui
TracyCoder12319 小时前
LeetCode Hot100(7/100)—— 3. 无重复字符的最长子串
算法·leetcode
重生之我是Java开发战士19 小时前
【优选算法】双指针法:移动0,复写0,快乐数,盛水最多的容器,有效三角形个数,二三四数之和
算法
nuo53420219 小时前
C语言实现类似面向对象的三大特性
c语言·开发语言