鱼C论坛

 找回密码
 立即注册
查看: 1650|回复: 0

[技术交流] C++ 冒泡排序法

[复制链接]
发表于 2020-2-5 18:31:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
冒泡排序


冒泡排序的基本原理是对存放原始数据的数组,按从前往后的方式进行扫描。

当发现相邻两个数组的次序与排序要求的大小次序不符合时,就将两个元素互换。

冒泡排序原理

  • 比较相邻的元素。如果第一个比第二个大,就交换它们两个。
  • 对每一对相邻元素做同样的工作,从开始的第一对到结尾的最后一对,这样在最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 重复步骤 1~3,直到排序完成。


冒泡排序例题

输入 n 个 int 类型的数(n <= 100),将它们按照从小到大的顺序输出。

输入为两行,第一行为 n,表示 n 个数;第二行为待排序的 n 个数。
输出为一行,即按照从小到大的顺序排列好的 n 个数。

我的程序如下:
// File: sort.cpp
// 冒泡排序算法

#include <iostream>
using namespace std;

int main()
{
    int a[100] = {}, n, i, ncopy;
    cin >> n;
    ncopy = n - 1;
    for (i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    while (true)
    {
        int flag = 1, temp;
        for (i = 0; i < ncopy; i++)
        {
            if (a[i] > a[i + 1])
            {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
                flag = 0;
            }
        }
        ncopy--;
        if (flag)
            break;
    }
    for (i = 0; i < n; i++)
    {
        cout << a[i] << " ";
    }
    return 0;
}

冒泡排序总结

排序算法有很多,冒泡排序只是其中一种比较简单的排序方法。

冒泡排序是最稳定的一种排序方法。

冒泡排序法的性能一般,平均时间复杂度为 O(n2)。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 18:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表