python 冒泡排序以及鸡尾酒排序

冒泡排序

就是一次循环,两两数据比较,将最大值放入末尾,此时找到了最大值,然后进行二次三次等循环,直到排序结束
在这里插入图片描述
冒泡排序代码

def bubble_sort_v1(array=[]):for i in range(len(array)-1):for j in range(len(array)-i-1):if array[j] > array[j+1]:temp = array[j]array[j] = array[j+1]array[j+1] = tempdef bubble_sort_v2(array=[]):for i in range(len(array)-1):# 有序标记,每一轮的初始是trueis_sorted = Truefor j in range(len(array)-i-1):if array[j] > array[j+1]:temp = array[j]array[j] = array[j+1]array[j+1] = temp# 有元素交换,所以不是有序,标记变为falseis_sorted = Falseif is_sorted:breakdef bubble_sort_v3(array=[]):# 记录最后一次交换的位置last_exchange_index = 0# 无序数列的边界,每次比较只需要比到这里为止sort_border = len(array)-1for i in range(len(array)-1):# 有序标记,每一轮的初始是trueis_sorted = Truefor j in range(sort_border):if array[j] > array[j+1]:temp = array[j]array[j] = array[j+1]array[j+1] = temp# 有元素交换,所以不是有序,标记变为falseis_sorted = False# 把无序数列的边界更新为最后一次交换元素的位置last_exchange_index = jsort_border = last_exchange_indexif is_sorted:breakmy_array = list([3, 4, 14, 1, 5, 6, 7, 8, 1, -1, 0, 9, 11])
bubble_sort_v3(my_array)
print(my_array)

鸡尾酒排序

是冒泡排序的优化,两侧排序

def cock_tail__sort(array=[]):for i in range(len(array) // 2):# 有序标记,每一轮的初始是trueis_sorted = True# 奇数轮,从左向右比较和交换for j in range(i, len(array)-i-1):if array[j] > array[j+1]:temp = array[j]array[j] = array[j+1]array[j+1] = temp# 有元素交换,所以不是有序,标记变为falseis_sorted = Falseif is_sorted:break# 偶数轮之前,重新标记为trueis_sorted = True# 偶数轮,从右向左比较和交换for j in range(len(array)-i-1, i, -1):if array[j] < array[j-1]:temp = array[j]array[j] = array[j-1]array[j-1] = temp# 有元素交换,所以不是有序,标记变为falseis_sorted = Falseif is_sorted:breakmy_array = list([3, 4, 14, 1, 5, 6, 7, 8, 1, -1, 0, 9, 11])
cock_tail__sort(my_array)
print(my_array)

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

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

相关文章

【CANoe/CANalyzer脚本】通过CAPL发送NM帧报文测试网络管理

优质博文推荐阅读&#xff08;单击下方链接&#xff0c;即可跳转&#xff09;&#xff1a; Vector工具链 CAN Matrix DBC CAN Matrix Arxml 一、在CANoe/CANalyzer中创建Program Node 在Measurement Setup中&#xff0c;创建Program Node&#xff1b; 接着导入下面的Demo:N…

D数树,牛客小白月赛78,思维

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 “开导&#xff01;” 众所周知&#…

echarts 轴文字内容太长导致显示不全解决方案

情况&#xff1a;Y轴内容是文字&#xff0c;内容太长可能会系那是不全。调整grid会导致短数据前的留白过于多。 解决方案&#xff1a; 方法一&#xff1a; 首先可以配置grid自适应 &#xff0c; containLabel 属性设置true &#xff08;这常用于『防止标签溢出』的场景&…

树、二叉树、森林的相互转化

目录 一、树>二叉树 二、二叉树>树 三、二叉树>森林 四、森林>二叉树 一、树>二叉树 ①兄弟相连 ②断开每个节点除与左孩子之外的连线 ③调整树为二叉树 二、二叉树>树 ①如果一个节点有父节点&#xff0c;将其右孩子与父节点相连&#xff0c;右孩子…

3D模型格式转换工具HOOPS Exchange协助Epic Games实现CAD数据轻松导入虚幻引擎

一、面临的挑战 Epic Games最为人所知的身份可能是广受欢迎的在线视频游戏Fortnite的开发商&#xff0c;但它也是虚幻引擎背后的团队&#xff0c;虚幻引擎是一种实时3D创作工具&#xff0c;为世界领先的游戏提供动力&#xff0c;并且也被电影电视、建筑、汽车、制造、模拟等领…

Python计算机二级知识点整理

1.当一个进程在运行过程中释放了系统资源后要调用 唤醒进程原语 唤醒进程原语是把进程从等待队列里移出到就绪队列并设置进程为就绪状态&#xff0c;当一个进程在运行过程中释放了系统资源后进入就绪状态&#xff0c;调用唤醒进程原语。 2. 3. 4.在希尔排序法中&#x…

windows常见的命令行操作

1.查看网络 ipconfig 2.根据任务id关闭进程 1.模糊搜索服务 tasklist | findstr QQ 2.根据模糊搜索结果&#xff0c;获取对应的pid taskkill /F /PID 5128 其他常见命令 若不清楚参数&#xff0c;使用&#xff08;命令 /?&#xff09;即可查看help

Day 02 python学习笔记

python运算符 算术运算符 混合运算的优先级&#xff1a; () > ** * / // % 高于 - 赋值运算符 - * / ** a 1 > a 3 > a a 3 其余同理 注意&#xff1a; python没有自增自减 &#xff08;a a a-- --a&#xff0…

Android EditText筛选+选择功能开发

在日常开发中经常会遇到这种需求&#xff0c;EditText既需要可以筛选&#xff0c;又可以点击选择。这里筛选功能用的是AutoCompleteTextView&#xff0c;选择功能使用的是第三方库https://github.com/kongzue/DialogX。 Android AutoCompleteTextView(自动完成文本框)的基本使用…

go语言 最小堆 最大堆 堆排序

建堆 调整 删除 先根据数组构建完全二叉树 从第一个非叶结点开始 调整为大跟堆&#xff0c;这里就是图里面的1结点开始调整 代码如下&#xff1a; func findKthLargest(nums []int, k int) int {heapSize : len(nums)buildMaxHeap(nums,heapSize)for i : len(nums) - 1; i &…

PRT(Precomputed Radiance Transfer【2002】)原理实现

声明 本文源自对Games202课程&#xff0c;作业2的总结。 参考 手把手教你写GAMES202作业&#xff1a;GAMES202-作业2&#xff1a; Precomputed Radiance Transfer&#xff08;球谐函数&#xff09;GAMES 202 作业2Games202课程个人Blog 课程总结&#xff1a;Games202(P6、P7…

员工上网行为监控能监控到哪些内容?员工上网行为监控有哪些?

在当今信息化社会&#xff0c;网络已经成为企业运营的重要工具。然而&#xff0c;网络的便捷性和开放性也带来了一系列问题&#xff0c;如员工工作效率低下、信息泄露等。为了解决这些问题&#xff0c;许多企业选择使用监控员工上网的软件。本文将详细介绍这类软件的功能、优势…

uniapp如何实现路由守卫、路由拦截,权限引导

因为uniapp路由的实现方式和以往vue开发的router路由时不太一样&#xff0c;故官方这么说&#xff1a; 经过一番网上冲浪发现&#xff0c;有两种方式可以实现&#xff0c; 第一种方式&#xff1a; 在上述代码中&#xff0c;我们通过监听beforeRouterEnter事件来实现路由守卫。…

知识图谱:知识表示发展史

​数据是众多行业最核心的资产&#xff0c;人工智能技术与数据的深度融合也成为各大行业机构的重点关注内容&#xff0c;在多种人工智能的技术中&#xff0c;知识图谱因其能够更好的表达业务场景的多样全貌&#xff0c;可以更好的服务于人工智能时代的分析与决策场景&#xff0…

Shiro 框架基本使用

文章目录 Shiro框架介绍Shiro 基本使用SimpleAccountRealmIniRealmJdbcRealmCustomRealm&#xff08;自定义Realm&#xff09; Shiro框架介绍 Apache Shiro是一个强大且易用的Java安全框架&#xff0c;它执行身份验证、授权、密码和会话管理。Shiro框架通过其三个核心组件&…

ASP.NET dotnet 3.5 实验室信息管理系统LIMS源码

技术架构&#xff1a;ASP.NET dotnet 3.5 LIMS作为一个信息管理系统&#xff0c;它有着和ERP、MIS之类管理软件的共性&#xff0c;如它是通过现代管理模式与计算机管理信息系统支持企业或单位合理、系统地管理经营与生产&#xff0c;最大限度地发挥现有设备、资源、人、技术的…

OpenCV Series : Target Box Outline Border

角点 P1 [0] (255, 000, 000) P2 [1] (000, 255, 000) P3 [2] (000, 000, 255) P4 [3] (000, 000, 000)垂直矩形框 rect cv2.minAreaRect(cnt)targetColor roi_colortargetThickness 1targetColor (255, 255, 255)if lineVerbose:if …

深度探讨丨区块链领域企业的未来之路

发表时间&#xff1a;2022年8月4日 信息来源&#xff1a;bsvblockchain.org 随着公司越来越多地采用区块链和人工智能等新技术&#xff0c;他们也应当注意其中的一些机遇与挑战。这是近期在波兰华沙举行的“明日技术大会”上的一个主要圆桌讨论议题。 在圆桌讨论中&#xff0c…

基于SSM+Vue的乐购游戏商城系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【自动化测试】如何提高自动化脚本的健壮性和稳定性?

自动化脚本可能出错的原因&#xff1f; 配置环境引起 自动化测试脚本的配置。对测试程序进行配置。如&#xff1a;是否还原初始设置、是否删除某些数据。对浏览器进行配置。对与测试程序有关的程序或影响脚本稳定性的程序进行配置。 非配置环境引起 网络延时&#xff0c;识…