当前位置: 首页 > article >正文

8641 冒泡排序

SCAU数据结构OJ第六章

文章目录

  • 8641 冒泡排序


8641 冒泡排序

Description
用函数实现冒泡排序,并输出每趟排序的结果(要求当一趟冒泡过程中不再有数据交换,则排序结束)
输入格式
第一行:键盘输入待排序关键的个数n
第二行:输入n个待排序关键字,用空格分隔数据

输出格式
每行输出每趟排序结果,数据之间用一个空格分隔

输入样例
10
5 4 8 0 9 3 2 6 7 1

输出样例
4 5 0 8 3 2 6 7 1 9
4 0 5 3 2 6 7 1 8 9
0 4 3 2 5 6 1 7 8 9
0 3 2 4 5 1 6 7 8 9
0 2 3 4 1 5 6 7 8 9
0 2 3 1 4 5 6 7 8 9
0 2 1 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9

代码如下:

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int M=1e5+5;
int a[M],n;

void Print()
{
    for(int i=1;i<=n;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<endl;
}
void BubbleSort()
{
    int i,j;
    for(i=1;i<=n-1;i++)//5 4 8 0 9 3 2 6 7 1
    {
        bool t=false;
        for(j=1;j<n;j++)//4 5 0 8 3 2 6 7 1 9
        {
            if(a[j]>a[j+1])
            {
                t=true;
                swap(a[j],a[j+1]);
            }
        }
        Print();
        if(!t)//如果提前排完序,就不必再进行冒泡,可以提前跳出
        {
            break;
        }
    }
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    BubbleSort();
    return 0;
}


http://www.kler.cn/a/525819.html

相关文章:

  • 网络安全技术简介
  • STM32标准库移植RT-Thread nano
  • Java中的泛型
  • C++二叉树进阶
  • Oracle Primavera P6 最新版 v24.12 更新 1/2
  • 基于特征工程与转换方法的LightGBM资产预测研究
  • 【教学类-89-03】20250113新年篇03——福字贴(PPTX艺术字-空心字)
  • 我的求职面经:(2)C++中空指针请使用nullptr不要使用NULL
  • Haproxy介绍及学习
  • 代码随想录_栈与队列
  • 1/30每日一题
  • 课题推荐:基于matlab,适用于自适应粒子滤波的应用
  • [权限提升] Windows 提权 — 系统内核溢出漏洞提权
  • 三路排序算法
  • 拼车(1094)
  • 在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令
  • AutoDL 云服务器:xfce4 远程桌面 终端乱码 + 谷歌浏览器
  • oracl:数据查询语言DQL
  • 密码强度验证代码解析:C语言实现与细节剖析
  • ChatGPT与GPT的区别与联系
  • cubemx配置ETH(以太网)
  • (java) IO流
  • 利用Edu邮箱解锁Notion Pro,提升学习与工作效率
  • 【Envi遥感图像处理】008:波段(批量)分离与波段合成
  • 【Prometheus】jmx_prometheus_javaagent监控java应用
  • 网站快速收录:提高页面加载速度的重要性