python实现冒泡排序算法的非递归版本_冒泡排序以及python代码实现(递归+非递归)...

一、冒泡排序

比较简单的排序算法,适合小规模数据集,效率较低。

依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。

每进行一趟排序,就会少比较一个数

python代码(非递归):

from typing import List

class Solution:

def BubbleSort(self, seq: List[int]) -> List[int]:

for i in range(len(seq)): #外层循环控制内层循环的长度

for j in range(0, len(seq) - i):

try:

if seq[j] > seq[j+1]: #如果前一个元素值大于后一个元素值,交换元素

seq[j], seq[j+1] = seq[j+1], seq[j]

except:

pass

return seq

a = Solution()

ans = a.BubbleSort([3, 4, 2, 1, 5, 1])

print(ans)

python代码(递归):

from typing import List

class Solution:

def BubbleSort(self, seq: List[int], bblen: int) -> List[int]:

for j in range(0, bblen):

print(bblen)

try:

if seq[j] > seq[j+1]:

seq[j], seq[j+1] = seq[j+1], seq[j]

except:

pass

bblen -= 1

if bblen <= 0: return seq

self.BubbleSort( seq, bblen)

return seq

a = Solution()

bblist = [3, 4, 2, 1, 5, 1]

ans = a.BubbleSort(bblist, len(bblist))

print(ans)

时间复杂度分析

最好的情况,也就是要排序的表本身就是有序的,那么我们比较次数,可以判断出就是n-1次的比较,没有数据交换,此时时间复杂度为O(n)

当最坏的情况,即待排序是逆序的情况,需要比较

次,此时时间复杂度为

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

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

相关文章

Git免密登陆远程

文章目录1. 生成公钥和私钥2. 拷贝公钥的内容&#xff0c;并设置到github中3.在git本地中配置ssh地址4. 以后使用5. 其他第三方代码托管仓库1. 生成公钥和私钥 执行以下命令&#xff1a; ssh-keygen注&#xff1a; windows (默认放在C:\Users\当前登录用户名.ssh目录下面) 例…

【机器学习PAI实战】—— 玩转人工智能之美食推荐

前言 在生活中&#xff0c;我们经常给朋友推荐一些自己喜欢的东西&#xff0c;也时常接受别人的推荐。怎么能保证推荐的电影或者美食就是朋友喜欢的呢&#xff1f;一般来说&#xff0c;你们两个人经常对同一个电影或者美食感兴趣&#xff0c;那么你喜欢的东西就很大程度上朋友…

小网站的容器化(上)

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 王洪鹏出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;作为一枚程序员&#xff0c;大家几乎基本都有自己的个人网站&#xff0c;这些网站有的可能是自己开发的有的可能是用一些工具自动生成的&#xff0c…

Java 8中处理集合的优雅姿势——Stream

在Java中&#xff0c;集合和数组是我们经常会用到的数据结构&#xff0c;需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。相比之下&#xff0c;关系型数据库中也同样有这些操作&#xff0c;但是在Java 8之前&#xff0c;集合和数组的处理并不是很便捷。 不过&#…

vue怎么获取用户的位置经纬度_vue 实现Web端的定位功能 获取经纬度

首先我这里的需求呢, 是获取当前用户的经纬度经过无数次的测试, 先后用了 腾讯/百度地图的api&#xff0c;最后绝对还是高德的js APi废话不多说, 直接上代码。首先在 index.html 里面 引入然后 去你需要获取的页面 开始写, 我这里拿来测试用,所以只有一个App.vue 文件。貌似已经…

Git gitignore文件讲解

文章目录1. 忽略某个文件2. 忽略某种类型文件3. 取反不忽略指定文件4. 忽略某个文件夹5. 忽略文件配置gitignore文件放置到项目的根目录中&#xff0c;为了让git管理文件中忽略指定的文件、指定的文件列表、指定的文件类型等等&#xff0c;提交的时候git忽略配置的这些文件。 …

用Python扒出B站那些“惊为天人”的阿婆主!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 徐麟责编 | 阿秃前言近期B站的跨年晚会因其独特的创意席卷各大视频网站&#xff0c;给公司带来了极大的正面影响&#xff0c;股价也同时大涨&#xff0c;想必大家都在后悔没有早点买B站的股票&#xff1a;然而今天我们要讨论…

我们总结了每个技术团队都会遇到的 4 个难题

阿里巴巴 2019 年实习生校园招聘已经启动&#xff0c;为此&#xff0c;我们整理了一篇《每个技术团队都会遇到的4个难题》&#xff0c;帮助即将从校园进入公司实习的后端程序员&#xff0c;以实践的视角&#xff0c;看看一个后端技术团队会遇到的一些难题。虽然&#xff0c;技术…

怎么查看指定app日志_Linux系统查看系统信息和日志有哪些常用的命令

请关注本头条号&#xff0c;每天坚持更新原创干货技术文章。如需学习视频&#xff0c;请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言本文主要讲解Linux系统有哪些日志文件以及如果查看和分析这些日志文件。查看linux日志的方法2. Linux日志文件有哪些我们来看看L…

Git 切换提交历史节点

文章目录1. 命令版本2. idea图形化版本(推荐使用)1. 命令版本 git checkout 版本号注&#xff1a;适用于之前和之后 2. idea图形化版本(推荐使用) 未操作截图&#xff1a; 切换到第3次提交 切换到第2次提交 切换到第5次提交

阿里云RPA(机器人流程自动化)干货系列之三:阿里云RPA介绍

本文是阿里云RPA&#xff08;机器人流程自动化&#xff09;干货系列之三&#xff0c;详细介绍了阿里云RPA的产生背景、技术特点、功能特性、非功能指标以及发展现状等。 一、产生背景 在2011年&#xff0c;随着阿里巴巴集团的各项业务突飞猛进&#xff0c;集团内的各个部门都遇…

入局视频会议市场 揭秘“腾讯会议”背后的创新黑科技

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;曾经的你是否遇到过这样的窘境&#xff1f;出门在外巧遇紧急会议&#xff0c;手机接入模糊不清&#xff0c;挠头状……企业内部分支偏远&#xff0c;开…

阿里巴巴基于 Nacos 实现环境隔离的实践

随着Nacos 0.9版本的发布&#xff0c;Nacos 离正式生产版本&#xff08;GA&#xff09;又近了一步&#xff0c;其实已经有不少企业已经上了生产&#xff0c;例如虎牙直播。 本周三&#xff08;今天&#xff09;&#xff0c;晚上 19:00~21:00 将会在 Nacos 钉钉群直播 Nacos 1.…

Git 版本对比 idea图形化版本

默认初始化5次提交 对比第4次提交和第5次提交的不同点&#xff1a; 依次双击文件即可&#xff0c;不同部分会标识出来&#xff0c;如下图所示&#xff1a; 这个图的意思是&#xff0c;第5次提交在第4次提交的基础上添加了一条<li>v5</li> 其他版本之间的对比…

点读笔客户端_新手妈妈如何选购点读笔

点读笔的起源现在的中国早教市场来说&#xff0c;点读笔受到很多家长的青睐。其实早在很久以前&#xff0c;点读笔已经风靡美国和欧洲。当时在美国&#xff0c;该产品称为电子书&#xff0c;原理是通过电子设备感应读出书中相应的内容。主要是给婴幼儿学习语言和锻炼阅读能力的…

在 Ali Kubernetes 系统中,我们这样实践混沌工程

在传统的软件测试中&#xff0c;我们通常通过一个给定的条件来判断系统的反馈&#xff0c;通过断言来判断是否符合预期&#xff0c;测试条件和结果通常比较明确和固定。而混沌工程&#xff0c;是通过注入一些“不确定”因素&#xff0c;象放进了一群淘气的猴子&#xff0c;在系…

解决idea一直updating index

是因为使用了电脑清理软件&#xff0c;可走以下流程解决问题&#xff0c; 点击【File 】-> 选择【invalidate Caches/Restart】 -> 点击【invalidate and Restart】&#xff0c;完美解决问题。

经过卖房创业与“云吞面”群聊,老季带着优刻得迎来了“开市大吉”……

CSDN记者晶少快报于上海证券交易所现场 今日&#xff0c;优刻得UCloud科技股份有限公司正式在科创板挂牌上市&#xff0c;股票简称优刻得&#xff0c;股票代码为688158。作为唯一一家没有“爸爸”的云计算服务商&#xff0c;2012年成立的优刻得UCloud&#xff0c;自创立近8年来…

天气模式_北方降雪骤减!南方开启湿冷模式多阴雨!|天气展望

刚刚过去的周末许多小伙伴期盼的雪花如愿到货白雪飘飘的冬日浪漫你感受到了吗→“初雪”刷屏&#xff1f;今天&#xff0c;来聊聊关于雪的那些事~然而在北方雪花纷飞的同时象象看到后台许多南方的粉丝感叹这雪与我无关只能穿着半袖开着空调吃着雪糕来感受下雪的氛围这不冷空气决…

Git bash 编码格式配置_02

文章目录1. 中文配置2. 基础编码3. 配置环境变量1. 中文配置 2. 基础编码 在git bash命令窗口总依次执行 git config --global i18n.commitencoding utf-8 #这个主要就是log输出的编码格式 git config --global i18n.logoutputencoding utf-8 git config --global gui.encodi…