Ideas

冒泡排序在最坏情况下(完全逆序)的交换次数为cnt=n(n−1)2cnt=\frac{n(n-1)}{2}cnt=2n(n−1)​,当n=14时,cnt=91,当n=15时,cnt=105。

要求字典序最小,cnt=105代表:由前15个字母组成的逆序排列进行冒泡排序需要交换105次。

15个字母组成的逆序排列:onmlkjihgfedcba,这种情况需要105此交换,所以我们要给它减少5次交换,即将某一位置的字母向前移动5位,为了保证字典序最小,我们把第6位的字母j移动到第1位:jonmlkihgfedcba,也就是说,前5次比较过程不进行位置交换。

然后我们可以写一个冒泡排序验证一下。

Code

C++

#include <iostream> using namespace std;int bubble_sort_cnt(char arr[], int n) {int cnt = 0;for(int i = n - 1; i > -1; i--) {for(int j = 0; j < i; j++) {if(arr[j] > arr[j + 1]) {cnt++;swap(arr[j], arr[j + 1]);}}}return cnt;
}int main() {int n = 15;char a[n] = {'j', 'o', 'n', 'm', 'l', 'k', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'};cout << bubble_sort_cnt(a, n);
}

Python

def bubbleSortCnt(arr: list) -> int:cnt = 0for i in range(len(arr) - 1, -1, -1):for j in range(i):if arr[j] > arr[j + 1]:cnt += 1arr[j], arr[j + 1] = arr[j + 1], arr[j]return cntif __name__ == '__main__':print(bubbleSortCnt(list("onmlkjihgfedcba")))print(bubbleSortCnt(list("jonmlkihgfedcba")))

Answer:jonmlkihgfedcba

2020年第十一届蓝桥杯 - 省赛 - Java研究生组+Java大学B组+Python大学组 - E.排序相关推荐

  1. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

  2. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  3. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数

    2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...

  4. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  5. 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数

    2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...

  6. 2020年第十一届蓝桥杯省赛及国赛心得(Java B组)

    省赛 今年省赛五道结果填空题,五道程序设计题.结果填空前三道比较简单,都对了.最后两道结果填空题有点难,就直接跳过去做程序设计题.前两道送分题,第三道深搜,第四道时间来不及,我直接暴力过50%样例.最 ...

  7. 第十一届蓝桥杯省赛完整解析(Java 大学B组)

    A 解密 答案提交 这是一道结果填空题,你只需要算出结果后提交即可.本题的结果为一个只包含 30 3030 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分. 代码 p ...

  8. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - C.跑步锻炼

    Ideas Python日期计算,判断周初月初就欧克啦. Code Python from datetime import date from datetime import timedeltaif ...

  9. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - B.寻找2020

    Ideas 这题其实没什么难度,主要就是要读取文件,整理成一个矩阵,然后遍历整个矩阵,每个是2的位置判断三个方向是否构成2020就可以了. Code Python if __name__ == '__ ...

  10. 2020年第十一届蓝桥杯省赛Java b组题目 答案解析

    试题 A: 门牌制作 本题总分:5 分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几 ...

最新文章

  1. Google Quest 冠军访谈:3个秘诀,8条建议,还有人在华为做 NLP 研究员
  2. Maven项目配置EL表达式原样输出解决方法
  3. Java数据持久层框架 MyBatis之背景知识一
  4. java强制编译通过_强制java使用用户输入作为消息进行编译错误
  5. Insertion Sort
  6. 【作者面对面问答】包邮送《Redis 5设计与源码分析》5本
  7. 【Elasticsearch】es如何停用节点
  8. 设计素材|C4D别高质量模型包
  9. 记录一下:在菜单上添加自绘图形的例子(VB6代码)
  10. ./configure:command not found 解决方法
  11. 斯特林公式--求n!的位数
  12. 捕获 PHP 致命错误 Fatal Errors
  13. VISIO画立体图——VISIO画图技巧
  14. 基于ssm的医院管理系统-医院门诊收费系统设计-医院住院系统代码
  15. MySQL联合查询分页
  16. 浅层砂过滤器 全自动浅层介质过滤系统
  17. Linux查看网口丢包命令,Linux模拟网络丢包与延迟的方法
  18. wps打开服务器文件很慢,wps打开速度慢怎么办-wps打开速度慢解决方法 - 河东软件园...
  19. 非肿瘤体细胞突变可能是临床基因检测新赛道
  20. 亚马逊运营面试经验分享:避免踩坑,少走弯路

热门文章

  1. Jmeter4.0----CSV Data Set Config_对输入参数进行参数化(13)
  2. struts2综合例子--------拦截器(登陆检查,日志记录),校验validate,
  3. 关于动画培养灵感的网站
  4. Unity 白猫操作小实例
  5. teraterm 执行sql命令_tera term的ttl脚本使用方法 | 学步园
  6. mybatis 取list第一个_Mybatis(五)- 多对一
  7. frontpage中html编辑,FrontPage教程编辑网页
  8. C语言函数题-取子串 (10分)
  9. 去掉dist后php后缀也没有了,DVWA:环境搭建 - osc_gz5w458v的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串