蓝桥杯-Python组(一)

1. 冒泡排序

算法步骤:

  • 比较相邻元素,如果第一个大于第二个则交换
  • 从左往右遍历一遍,重复第一步,可以保证最大的元素在最后面
  • 重复上述操作,可以得到第二大、第三大、…
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
n = int(input())
a = list(map(int, input().split()))# 循环n-1次,每次获得第i大
for i in range(1, n):for j in range(0, n - i):if a[j] > a[j + 1]:a[j], a[j + 1] = a[j + 1], a[j]
print(' '.join(map(str, a)))

在这里插入图片描述

2. 选择排序

算法步骤:

  • 从左往右找到最小元素,放在起始位置
  • 重复上述步骤,依次找到第2小、第3小元素…
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

n = int(input())
a = list(map(int, input().split()))  # 将一个函数映射到一个或多个迭代器中的所有元素上for i in range(n - 1):min_value = a[i]  # 值min_idx = i  # 下标for j in range(i, n):# 第i次从[i, n-1]找最小值if a[j] < min_value:min_value = a[j]min_idx = j# 将最小值放到前面去(将最小值和最前面的元素交换)a[min_idx], a[i] = a[i], a[min_idx]print(' '.join(map(str, a)))

3. 插入排序

算法步骤:

  • 第一个元素看做已排序,从左往右遍历每一个元素;
  • 在已排序元素中从后往前扫描:如果当前元素大于新元素,则该元素移动到后一位
  • 重复第二步直至找到小于等于新元素则停止
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
n = int(input())
a = list(map(int, input().split()))# 对于第i个数字,在区间[0,i-1]中从后往前找对应插入的位置
for i in range(1, n):value = a[i]# 插入元素的下标insert_idx = 0for j in range(i - 1, -1, -1):if a[j] > value:# 往后挪a[j + 1] = a[j]else:insert_idx = j + 1break# 插入第i个数字a[insert_idx] = value
print(' '.join(map(str, a)))

4. 快速排序

算法步骤:

  • 找一个基准值X
  • 把列分成三部分:小于等于X的数字,X, 大于X的数字
  • 左半部分和右半部分递归使用该策略

例如:a=[3,5,8,1,2,9,4,7,6]
找到基准值3,[1,2] , 3, [5,8,9,4,7,6]
左半部分[1,2]作为一个子问题求解
右半部分 [5,8,9,4,7,6]作为一个子问题求解
在这里插入图片描述
在这里插入图片描述

# a[left,right]按照小于等于基准值、基准值、大于基准值排列
def partition(a, left, right):# 设置基准值下标:left# 放置小于等于基准之元素的下标idx = left + 1for i in range(left + 1, right + 1):# 如果当前元素小于等于基准值,则放到最小元素那边if a[i] <= a[left]:a[idx], a[i] = a[i], a[idx]idx += 1# 小于等于基准值的元素为[left+1, idx-1]# 最后将基准值放在中间a[left], a[idx - 1] = a[idx - 1], a[left]# 返回基准值的下标return idx - 1def quicksort(a, left, right):if left < right:mid = partition(a, left, right)quicksort(a, left, mid - 1)quicksort(a, mid + 1, right)n = int(input())
a = list(map(int, input().split()))
quicksort(a, 0, n-1)
print(' '.join(map(str, a)))

5. 归并排序

算法步骤:

  • 先把数组分成两部分
  • 每部分递归处理变成有序
  • 将两个有序列表合并起来

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

n = int(input())
a = list(map(int, input().split()))# 合并两个List
def Merge(A, B):result = []while len(A) != 0 and len(B) != 0:if A[0] <= B[0]:result.append(A.pop(0))else:result.append(B.pop(0))result.extend(A)result.extend(B)return resultdef MergeSort(A):if len(A) < 2:return Amid = len(A) // 2left = MergeSort(A[:mid])right = MergeSort(A[mid:])return Merge(left, right)print(' '.join(map(str, MergeSort(a))))

6. 桶排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

from itertools import chaindef Bucket_Sort(a, bucketcount):minvalue, maxvalue = min(a), max(a)# 桶大小bucketsize = (maxvalue - minvalue + 1) // bucketcountres = [[] for i in range(bucketcount + 1)]for x in a:idx = (x - minvalue) // bucketsizeres[idx].append(x)# print(res)# 每个桶单独排序,可以采用其他排序算法for res_x in res:res_x.sort()return list(chain(*res))n = int(input())
a = list(map(int, input().split()))a = Bucket_Sort(a, min(n, 10000))
print(' '.join(map(str, a)))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三、NLP中的句子关系判断

句子关系判断是指判断句子是否相似&#xff0c;是否包含&#xff0c;是否是问答关系等&#xff0c;常应用在文本去重、检索&#xff08;用户输入和文档的相关性&#xff09;、推荐&#xff08;和用户喜好文章是否相似&#xff09;等场景中。 3.0、文本相似度计算 3.0.0 传统机…

计算机网络-认识设备

一、概述 前面我们其实已经讲了一些关于设备的知识了&#xff0c;从现在开始进入下一阶段的理解。 网络基础设施由交换机、路由器、防火墙等构成,那我们的数据怎样从一个接口转发到另外一个接口最终实现网络访问的呢&#xff1f; 二、设备基础 2.1 网络设备硬件架构 我们分别以…

Axure原型设计项目效果 全国职业院校技能大赛物联网应用开发赛项项目原型设计题目

目录 前言 一、2022年任务书3效果图 二、2022年任务书5效果图 三、2022年国赛正式赛卷 四、2023年国赛第一套样题 五、2023年国赛第二套样题 六、2023年国赛第三套样题 七、2023年国赛第四套样题 八、2023年国赛第七套样题 九、2023年国赛正式赛题&#xff08;第八套…

SSA-LSTM多输入回归预测 | 樽海鞘优化算法-长短期神经网络 | Matlab

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&am…

智慧路灯杆如何提升智慧城市文旅形象

今年以来&#xff0c;全国多地城市凭借本地独特物产、独特旅游环境等亮点火爆出圈&#xff0c;为城市带来显著经济增长和形象提升。文旅经济作为高附加值产业&#xff0c;具有高收益、高潜力等特点&#xff0c;还有助于推动城市经济转型和可持续发展。 推动城市文旅经济发展&am…

力扣每日一题 最大二进制奇数 模拟 贪心

Problem: 2864. 最大二进制奇数 由于奇数的二进制末尾一定是 111&#xff0c;我们可以把一个 111 放在末尾&#xff0c;其余的 111 全部放在开头&#xff0c;这样构造出的奇数尽量大。 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class…

全国降雨侵蚀力因子R值/土壤侵蚀模型RUSLE

降雨侵蚀力因子其实是反应降雨对土壤侵蚀的潜在能力&#xff0c;就是降雨的冲刷对土壤的侵蚀效应。 在过去几天查阅文献资料的过程中&#xff0c;本人亲眼看见过的关于因子R的计算方法就超过30种&#xff0c;着实大开了眼界。 不过总结这些计算方法&#xff0c;其实核心思路大…

第六篇【传奇开心果系列】Python的自动化办公库技术点案例示例:大学生数据全方位分析挖掘经典案例

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas库全方位分析挖掘大学生数据能力介绍二、大学生学生成绩数据分析数据挖掘示例代码三、大学生选课数据分析数据挖掘示例代码四、大学生活动参与数据分析数据挖掘示例代码五、大学…

让若依生成的service、mapper继承mybatisPlus的基类

前言&#xff1a;若依继承mybatisPlus后&#xff0c;生成代码都要手动去service、serviceImpl、mapper文件去继承mybatisplus的基类&#xff0c;繁琐死了。这里通过修改若依生成模版从而达到生成文件后直接使用mybatisPlus的方法。 一、首先找到若依生成模版文件位置&#xff…

VsCode免密登录

创建本地密匙 按下WinR输入cmd&#xff0c;输入 ssh-keygen -t rsa然后连续回车直到结束 找到Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub&#xff0c;每个人都不一样找到密匙所在地 打开id_rsa.pub这个文件&#xff0c;可以用记事本打开&am…

ROS 语音交互(三) tts

目录 一、模型选择 二、流程 三、核心代码展示 一、模型选择 科大讯飞超拟人识别 二、流程 超拟⼈合成协议 | 讯飞开放平台文档中心 (xfyun.cn) 三、核心代码展示 # coding: utf-8 import _thread as thread import os import time import base64import base64 import …

【C++】STL--String

这一节主要总结string类的常见接口&#xff0c;以及完成了string类的模拟实现。 目录 标准库的String类 string类常见接口 string类对象的常见构造 string析构函数&#xff1a;~string string类对象的容量操作 string类对象的访问及遍历操作 string类对象的修改操作 s…

NAS网络存储的简单了解

一、概述 NAS网络存储&#xff0c;即网络附加存储&#xff08;Network Attached Storage&#xff09;&#xff0c;是一种具有很大存储容量的电脑外敷设备&#xff0c;它通过网络直接连接到交换机上。NAS的主要功能是为网络区域存储&#xff08;或磁盘&#xff09;的用户提供数据…

二、TensorFlow结构分析(5)案例

案例&#xff1a; minimize(error) 代码&#xff1a; def linear_regression():# 自实现线性回归# 1&#xff09;准备数据X tf.random.normal(shape[100,1])y_true tf.matmul(X,[[0.8]]) 0.7# 2&#xff09;构造模型# 定义模型参数 用 变量weights tf.Variable(initial_v…

聚观早报 | 比亚迪e2荣耀版上市;华为享界S9正式亮相

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月14日消息 比亚迪e2荣耀版上市 华为享界S9正式亮相 理想汽车L系列改名 极氪全新纯电MPV车型曝光 vivo X100S外…

大数据基础设施搭建 - Doris

文章目录 一、Linux系统要求1.1 设置系统最大打开文件句柄数1.2 设置最大虚拟块的大小1.3 集群中其他安装doris的机器同上调整1.4 重启服务器生效 二、确认需要下载哪个Doris版本三、上传并解压压缩包3.1 创建目录3.2 解压fe3.3 解压be3.4 解压java udf函数3.4.1 解压3.4.2 复制…

金航标kinghelm宋仕强先生说,“金航标,连接世界

金航标kinghelm宋仕强先生说&#xff0c;“金航标&#xff0c;连接世界”。连接器的作用是为两个电路子系统提供一个可分离的界面&#xff0c;一方面使得零部件或子系统的维护或升级不必修改整个系统&#xff1b;另一方面提高了零部件的便携性、外围设备的拓展能力&#xff0c;…

搭建个人智能家居 3 -第一个设备“点灯”

搭建个人智能家居 3 -第一个外设“点灯” 前言ESPHome点灯 HomeAssistant 前言 前面我们已经完成了搭建这个智能家居所需要的环境HomeAssistant和ESPHome&#xff0c;今天我们开始在这个智能家居中添加我们的第一个设备&#xff08;一颗LED灯&#xff09;&#xff0c;如果环境…

Qt 如何搭建Lua的运行环境

一、Lua简介 Lua 是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程&#xff08;procedural&#xff09;编程、面向对象编程、函数式编程以及数据描述。Lua 是动态类型的&#xff0c;运行速度快&#xff0c;支持自动内存管理&#xff0c;因此被广泛用于配置、脚本…

使用OCC进行旋转扫掠

旋转扫掠是将物体以某一个坐标轴为参照&#xff0c;按照指定的角度旋转生成新的图形的过程 这里使用面的案例&#xff0c;使用线的逻辑处理其实是一样的 //构造旋转轴 gp_Ax1 anAxis; //设置轴的原点 anAxis.SetLocation(0,0,0); //设置轴的方向 anAxis.SetDirection(gp_Dir(0…