2020年第十一届蓝桥杯 - 省赛 - Java研究生组+Java大学B组+Python大学组 - E.排序
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.排序相关推荐
- 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑
题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...
- 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数
2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...
- 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数
2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数
这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...
- 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数
2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...
- 2020年第十一届蓝桥杯省赛及国赛心得(Java B组)
省赛 今年省赛五道结果填空题,五道程序设计题.结果填空前三道比较简单,都对了.最后两道结果填空题有点难,就直接跳过去做程序设计题.前两道送分题,第三道深搜,第四道时间来不及,我直接暴力过50%样例.最 ...
- 第十一届蓝桥杯省赛完整解析(Java 大学B组)
A 解密 答案提交 这是一道结果填空题,你只需要算出结果后提交即可.本题的结果为一个只包含 30 3030 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分. 代码 p ...
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - C.跑步锻炼
Ideas Python日期计算,判断周初月初就欧克啦. Code Python from datetime import date from datetime import timedeltaif ...
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - B.寻找2020
Ideas 这题其实没什么难度,主要就是要读取文件,整理成一个矩阵,然后遍历整个矩阵,每个是2的位置判断三个方向是否构成2020就可以了. Code Python if __name__ == '__ ...
- 2020年第十一届蓝桥杯省赛Java b组题目 答案解析
试题 A: 门牌制作 本题总分:5 分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几 ...
最新文章
- Google Quest 冠军访谈:3个秘诀,8条建议,还有人在华为做 NLP 研究员
- Maven项目配置EL表达式原样输出解决方法
- Java数据持久层框架 MyBatis之背景知识一
- java强制编译通过_强制java使用用户输入作为消息进行编译错误
- Insertion Sort
- 【作者面对面问答】包邮送《Redis 5设计与源码分析》5本
- 【Elasticsearch】es如何停用节点
- 设计素材|C4D别高质量模型包
- 记录一下:在菜单上添加自绘图形的例子(VB6代码)
- ./configure:command not found 解决方法
- 斯特林公式--求n!的位数
- 捕获 PHP 致命错误 Fatal Errors
- VISIO画立体图——VISIO画图技巧
- 基于ssm的医院管理系统-医院门诊收费系统设计-医院住院系统代码
- MySQL联合查询分页
- 浅层砂过滤器 全自动浅层介质过滤系统
- Linux查看网口丢包命令,Linux模拟网络丢包与延迟的方法
- wps打开服务器文件很慢,wps打开速度慢怎么办-wps打开速度慢解决方法 - 河东软件园...
- 非肿瘤体细胞突变可能是临床基因检测新赛道
- 亚马逊运营面试经验分享:避免踩坑,少走弯路
热门文章
- Jmeter4.0----CSV Data Set Config_对输入参数进行参数化(13)
- struts2综合例子--------拦截器(登陆检查,日志记录),校验validate,
- 关于动画培养灵感的网站
- Unity 白猫操作小实例
- teraterm 执行sql命令_tera term的ttl脚本使用方法 | 学步园
- mybatis 取list第一个_Mybatis(五)- 多对一
- frontpage中html编辑,FrontPage教程编辑网页
- C语言函数题-取子串 (10分)
- 去掉dist后php后缀也没有了,DVWA:环境搭建 - osc_gz5w458v的个人空间 - OSCHINA - 中文开源技术交流社区...
- Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串