惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Last Week in AI
Last Week in AI
The Cloudflare Blog
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
S
SegmentFault 最新的问题
量子位
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta

博客园 - xiaobin80

Hello MFC - The last little bit of work Hello MFC - Add Resource and About Dialog Hello MFC - The Message Map my first mfc application Development Environment Preparation Clang IDE的选择在Windows Visual Studio 2017 and Fx EOL 跟我学python(5)- 匹配数字 跟我学python(4)- 正则 跟我学python(3)--- 带shell功能的hello world 跟我学python(2)- 第一个程序 跟我学python --- 搭建开发平台 Debian server 安装 debian 与 ubuntu 之 - sudo Try Value 计算文件CRC32数值 docker ce on Debian 使用hugo在gitee上写blog spring cloud gateway - RequestRateLimiter postman使用 Create User - mysql COM调用 – VB、PB J-Link clone问题 修复山寨版的J-Link
改进的冒泡算法
xiaobin80 · 2016-04-15 · via 博客园 - xiaobin80

    在百度百科中的代码:

void bubble_sort(int a[], int n)
{
    int i, j, temp;
    for (j = 0; j < n - 1; j++)
        for (i = 0; i < n - 1 - j; i++)
        {
            if(a[i] > a[i + 1])
            {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
            }
        }
}

View Code

改进后:

 1 void bubble_sort(int a[], int n)
 2 {
 3     int i, j, temp;
 4 
 5     for (i = 0; i < n; i++) {
 6         for (j = 1; j < n - i; j++) {
 7             if (a[i] > a[i + j] ) {
 8                 temp = a[i];
 9                 a[i] = a[i + j];
10                 a[i + j] = temp;
11             }
12         }
13         printf("a[%d] = %d\n", i, a[i]);
14     }
15 }

前数: a[i] 

后数: a[i + j]

外循环: 前数

    从下标0开始;

内循环: 后数

    从下标1开始;

交换(数据)代码:

    (1) 把前数赋值给临时变量(temp);

    (2) 把后数赋值给前数;

    (3) 把临时变量赋值给后数