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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java divide_java中awt做什么的

    java divide_java中awt做什么的gridx,gridy:设置组件的位置,从0开始gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。建议定义出gridx,gri…

    2022年9月4日
  • 详解BP神经网络

    BackPropagationNeuronNetWok  BP神经网络学习算法可以说是目前最成功的神经网络学习算法。显示任务中使用神经网络时,大多数是使用BP算法进行训练.  在我看来BP神经网络就是一个”万能的模型+误差修正函数“,每次根据训练得到的结果与预想结果进行误差分析,进而修改权值和阈值,一步一步得到能输出和预想结果一致的模型。举一个例子:比如某厂商生产一种产品,投放到市场之…

    2022年4月6日
  • JavaScript数组求和_js获取对象数组的第一个元素

    JavaScript数组求和_js获取对象数组的第一个元素您如何找到其元素的总和?好吧,解决方案是一个array.reduce()方法。Array.prototype.reduce()函数可用于遍历数组,将当前元素值添加到先前项目值的总和中。Javascript和数组要查找两个数字的Java和数组,请使用array.reduce()方法。reduce()方法将数组简化为单个值。reduce()函数为数组的每个值(从左到右)执行提供的函数。方法的返回值存储在累加器中(结果/总计)。句法array.reduce(function(total,cur

    2022年9月28日
  • Linux Epoll介绍和程序实例

    Linux Epoll介绍和程序实例

    2021年12月2日
  • html 下拉导航栏源码,html导航栏下拉菜单怎么制作?这里有详细的代码实例「建议收藏」

    html 下拉导航栏源码,html导航栏下拉菜单怎么制作?这里有详细的代码实例「建议收藏」元素来包裹这些元素,并使用CSS来设置下拉内容的样式。html导航栏菜单的CSS部分:.dropdown类使用position:relative,这将设置下拉菜单的内容放置在下拉按钮(使用position:absolute)的右下角位置。.dropdown-content类中是实际的下拉菜单。默认是隐藏的,在鼠标移动到指定元素后会显示。注意min-width的值设置为160px。你可以随意修改它…

    2022年5月24日
  • java缓存处理_清理java缓存

    java缓存处理_清理java缓存 java缓存技术一(转)看一粒沙中的世界,一朵野花中的天堂。把无限握于掌中,把永恒握于瞬间。——威廉•布莱克开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我们在做很多核心的算法的时候,没有理论根本无从下手,而在我们多年的实践中,不

    2022年9月1日

发表回复

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

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