萝卜的冒泡排序

2023-05-16

题目描述

萝卜上次已经说过要给各位同学出一道冒泡排序,那么此题就以冒泡排序为主吧,可是实验室的学长学姐觉得学弟学妹们都很厉害,所以就加了各种各样的条件,最 终萝卜还是选择加一些条件,比如:让你直接排序输出结果就体现不出冒泡排序了。所以萝卜决定必须要用冒泡排序才能做出来的题目才叫冒泡排序的题目嘛?所以 这里只需要你在使用冒泡排序的时候统计交换的次数,在定义一个规则,如果存在相同的数,那么出现较早的那个数就排在后面。请帮萝卜解决这个问题吧。
输入
只有一组数据。
第一行一个n。(n<100)
接下来有n个数,表示要排序的数(不超过100)。
输出
输出交换的次数。

分析:此题绝对没有看上去那么简单,我们会发现,如果直接用一个冒泡是无法得到正确的答案的,因为,在判断时,我们不能把相同的数,一起判断,否则,就会重复多次。

代码如下:

#include"stdio.h"
int main()
{
    int n,a[101],i,j,m,t,q;
    scanf("%d",&n);
    {
        m=0;
        for(i=0; i<n; i++)
            scanf("%d",&a[i]);
        for(i=n-1; i>0; i--)
            for(j=0; j<i; j++)
            {
                if(a[j]>a[j+1])//在这里,我们没有将相等进行判断。
                {
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                    m++;
                }


            }
       
        q=1;//表示有几个相等的数。
        j=0;
        while(j!=n-1)//这里是针对相等的判断。
        {
            for(q=1; j<n-1; j++)//注意表达式1,我们将q=1。以保证每次能得到最好的结果。
                if(a[j]==a[j+1])//相等q++;
                {
                    q++;
                }
                else
                {
                    j++;
                    break;
                }
            while(q--)//如果有3个数相等,则要交换2+1次。四个数,则交换3+2+1次
            {
                m=m+q;
            }
        }
    }

    printf("%d\n",m);
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

萝卜的冒泡排序 的相关文章

随机推荐

  • python安装numpy、pandas

    python安装numpy pandas python3 span class token parameter variable m span pip span class token function install span numpy
  • Android Studio模拟器如何把语言设置为中文和设置中文输入法

    文章目录 Android Studio模拟器语言设置为中文Android Studio模拟器设置中文输入法Android Studio模拟器安装搜狗输入法下载搜狗输入法x86的输入法APK安装APK配置搜狗输入法 Android Studi
  • Top44:VNC服务器端安装及配置多用户启动-CentOS7.5 配置VNC服务-Linux服务器端配置可视化桌面连接

    CentOS7 5 配置VNC服务 思路流程1 列出可用环境组2 选择安装Xfce桌面3 创建一个用户 xff08 root用户不让连 xff0c 需开启配置 xff09 4 安装VNC Server5 创建初始配置并设置密码6 停止vnc
  • Mac 使用svn 报错:zsh:mac zsh: command not found: svn完整解决方案

    Mac 使用svn 报错 xff1a zsh xff1a mac zsh command not found svn完整解决方案 之前都是用的git xff0c 普遍也都是使用的git xff0c 但是为了应对各种项目 xff0c svn也
  • FreeRTOS数据类型和编程规范

    目录 数据类型 变量名 函数名 宏的名 数据类型 每个移植的版本都含有自己的portmacro h头文件 xff0c 里面定义了2个数据类型 TickType t FreeRTOS配置了一个周期性的时钟中断 xff1a Tick Inter
  • 软件工程考研复试速成 - 知识点精炼 - 背诵版

    针对于考研复试 软件工程 的面试问答 xff0c 一般都是抽查重点的概念问题 xff0c 所以本文对软件工程知识点进行重点的精炼 xff0c 力求节省准研究生们的复习时间 写这篇博客也是因为小编也在准备复试 xff0c 对学习的网课进行笔记
  • 如何将模型alembic与动画alembic相关联?

    在三维动画制作时 xff0c 许多制作部门需要同时进行 xff0c 当模型部门制作好模型之后会把publish好的模型分给材质 xff0c 动画 xff0c layout等部门同时进行制作 xff0c 有时候项目要求角色有不同的材质和UV
  • Cesium标注实体【Entity】增、删、改、查

    实体实例将多种形式的可视化聚合到一个高级对象中 它们可以手动创建并添加到 Viewer entities 或由数据源生成 xff0c 例如 CzmlDataSource 和 GeoJsonDataSource 一 Entity 增加 方法一
  • hdu1085(生成函数)

    题目 我终于会用对拍器了 xff0c 我总是不敢去尝试新事物 xff0c 去年就像学 xff0c 上网搜过几次资料 xff0c 感觉烦就放弃了 xff0c 但事实证明其实非常简单 xff0c 对于我未来的coding生活来说实在是大有裨益
  • sumo osmWebWizard.py不生成OSM.sumocfg

    osmWebWizard在确定地图范围和车辆数 xff0c 点击Generate Scenario选项后 生成文件只含有osm netccfg和osm polycfg xff0c 如图 xff1a 主要原因是 当前版本默认仅勾选Add Po
  • vue封装Axios

    Axios的封装 安装axios npm install axios span class token punctuation span span class token comment 安装axios span 引入 一般在项目的src目
  • docker学习笔记(一)—— ubuntu16.04下安装docker

    本文开发环境为Ubuntu 16 04 LTS 64位系统 xff0c 通过apt的docker官方源安装最新的Docker CE Community Edition xff0c 即Docker社区版 xff0c 是开发人员和小型团队的理想
  • Centos7 安装teamviewer

    需求 需要在centos7服务器上安装最新的centos7 一 前期准备 下载teamviewer安装包 xff1a teamviewer官网 使用xftp把下载的文件传到服务器对应的文件夹中 二 安装步骤 启动前准备环境 1 关闭防火墙
  • 字典序最大的子序列(维护单调栈)

    题意 xff1a 找到给出序列的字典序最大的子序列 思路 xff1a 维护单调栈即可 代码 xff1a span class token macro property span class token directive keyword i
  • C++(7-8章)笔记

    第七章 函数 C 43 43 的编程模块 7 xff0e 1函数 1 xff0c 函数如何返回值的 xff1f 答 xff1a 函数通过将返回值复制到指定的cpu寄存器或内存单元中来将其返回 随后 xff0c 调用程序将查看该内存单元 返回
  • 2020/2/20

    区域赛复现 xff1a 1小时 C 43 43 两章 xff1a 3小时 https www cnblogs com yrz001030 p 12340003 html 补了区域赛一题 xff1a 1小时 几何基础 43 2题 xff1a
  • 图论总结

    https www cnblogs com nervendnig p 9151437 html https www cnblogs com zhsl p 3271754 html
  • 使用栈实现进制转换

    使用栈实现进制转换 题目描述 使用栈将一个很长 xff08 gt 30 xff09 的十进制数转换为二进制数 分析 xff1a 此处虽然讲了用栈操作 xff0c 但是很明显我们可以不用 xff0c 直接用数组保存 当然用栈也一样 通过分析
  • 奇怪的棋盘

    题目描述 CC喜欢下棋 xff0c 她有一天去商店发现有很多很奇怪的棋盘 xff0c 那些棋盘的长宽不一样 xff0c 宽永远是2 xff0c 然后长有从1 n等等 然后那个商店还卖很奇怪的棋子 xff0c 都是1 2的大小 xff0c C
  • 萝卜的冒泡排序

    题目描述 萝卜上次已经说过要给各位同学出一道冒泡排序 xff0c 那么此题就以冒泡排序为主吧 xff0c 可是实验室的学长学姐觉得学弟学妹们都很厉害 xff0c 所以就加了各种各样的条件 xff0c 最 终萝卜还是选择加一些条件 xff0c