python冒泡排序代码和注释_Python 冒泡排序

python冒泡排序代码和注释_Python 冒泡排序冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢”浮”到数列的顶端。见下图:方法一:常规实现冒泡排序#方法1#定义一个列表,用于存放数字list=[]whileTrue:#…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢”浮”到数列的顶端。

见下图:

python冒泡排序代码和注释_Python 冒泡排序

方法一:常规实现冒泡排序

# 方法1

# 定义一个列表,用于存放数字

list = []

while True:

# 自定义输入数字个数

print(‘你想排列几个数?’)

try:

num = int(input())

for i in range(num):

a = int(input(‘请输入第’ + str((i+1)) + ‘个整数:’))

list.append(a)

except ValueError:

print(‘输入有误!’)

# 冒泡排序核心代码,

for j in range(len(list)-1):

for k in range(len(list)-1):

if list[k] < list[k+1]:

t = list[k]

list[k] = list[k+1]

list[k+1] = t

print(list)

算法的优劣主要看它的时间复杂度,冒泡排序的时间复杂度为:O(N^2)

可以看出,冒泡排序的时间复杂度偏高,所以它还不是最优算法!

方法二:利用sorted()方法快速实现排序

# 定义一个列表对象存数字

list = []

print(‘你想排列几个数?’)

try:

num = int(input())

for i in range(num):

a = int(input(‘请输入第’ + str((i + 1)) + ‘个整数:’))

list.append(a)

except ValueError:

print(‘输入有误!’)

# 利用sorted()方法排序,并使用reverse字段实现降序

print(sorted(list, reverse=True))

非常推荐这种利用sorted()方法实现排序的方法,因为简单嘛!python就是以简洁为名,越少的代码实现相同的功能

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181461.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【数据库管理】ORA-01017错误及部分的常见典型案例

    【数据库管理】ORA-01017错误及部分的常见典型案例本文将介绍对于数据库登录时ORA-01017错误问题的基本对应思路和一些典型的案例。

    2022年5月31日
    44
  • 微信小程序实例系列怎么做_小程序制作教程免费

    微信小程序实例系列怎么做_小程序制作教程免费下载微信小程序实现部分高德地图功能的DEMO下载微信小程序实现MUI的部分效果的DEMO下载更多微信小程序实例GITGIT地址https://github.com/Rattenking/WXTUI-DEMOGIT下载gitclonehttps://github.com/Rattenking/WXTUI-DEMO.git常见…

    2025年6月11日
    1
  • geostudio渗流教程_曲面静水压力计算

    geostudio渗流教程_曲面静水压力计算大家好,我是小马老师。本文继续介绍lammps模拟薄膜过滤的案例代码。在前面推文中,已经介绍了模型的建模过程。薄膜建模方法模型经过minimize能量最小化之后,进入弛豫阶段。因弛豫阶段代码较长,不再一一介绍各部分代码的功能,仅对代码中的几个比较重要的功能进行详细介绍。(1)薄膜固定及活塞墙的加压控制在模拟过程中,过滤薄膜不能移动,使用fixsetforce命令对其进行固定。fix mysf1membranesetforce000活塞墙在y、z方向需要固定,在x方向允许移动

    2022年9月6日
    3
  • 如何理解系统平均负载值(一)

    如何理解系统平均负载值(一)如何理解系统平均负载值(一)1.引你们好,可爱的小伙伴们^_^。每当我们发现系统变慢时,通常做的第一件事,就是执行top或者uptime命令,来了解系统的负载情况。比如下面这样,我在命令行里输

    2022年7月2日
    23
  • Java实现单链表、栈、队列三种数据结构

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:远航 cnblogs.com/yang-guang-zhang/p/13884023.html 一、单链表 1…

    2021年6月26日
    113
  • vscode常用插件大全「建议收藏」

    vscode常用插件大全「建议收藏」vscode常用插件大全参考文章https://mp.weixin.qq.com/s/1PkWPApvn5uWJl_cdzcoTA说明该片文章基本介绍了vscode常用插件,已经很全面本文不做任何编辑器的比较,只是我本人日常使用vscode进行开发,并且比较喜欢折腾vscode,会到处找这一些好玩的插件,于是越攒越多,今天给大家推荐一下我收藏的60多个vscode插件,据说插件装太多,编辑器会变卡,可能是我的电脑配置还顶得住,目前并没有感觉到卡卡的。接下来我会将会

    2022年9月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号