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

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
有赞技术团队
有赞技术团队
H
Help Net Security
V
Visual Studio Blog
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LangChain Blog
N
Netflix TechBlog - Medium
罗磊的独立博客
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements

博客园 - xiaobin80

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) 把临时变量赋值给后数