在Python中,有很多排序方法,有直接用sort或sorted函数的排序,有快速排序,有选择排序,有插入排序等等。当然,还有冒泡排序。

在Python中,冒泡排序是比较常见的,下面就说说冒泡排序的过程:

[3,2,4,1,5] 这个列表想要把它升序,怎么办?先要一个for循环,以便查找数据,for里面再套for,最里面的for做判断,就可以交换位置,遍历多次,以便遗漏

第一个for循环里要循环这个列表元素的个数次,第二个for循环要循环这个列表元素的个数次减1再减去第一个for循环的第 i 次。

因此,for循环代码为:

for i in range(len(s)):for j in range(len(s)-i-1):if s[j] > s[j+1] :# 此为判断是否大于后一个数,大于就换(升序判断),如果想是降序,就把">"改成"<"s[j], s[j+1] = s[j+1], s[j]

这里的s是列表

再加上输入和输出,总代码就是这样:

"""
Python冒泡排序
两个for
"""s = list(map(int,input().split(" ")))# 输入列表,以空格分隔,返回列表。   在此,就可输入:3 2 4 1 5
for i in range(len(s)):for j in range(len(s)-i-1):if s[j] > s[j+1] :# 此为判断是否大于后一个数,大于就换(升序判断),如果想是降序,就把">"改成"<"s[j], s[j+1] = s[j+1], s[j]for i in s:print(i,end=" ")# 输出,按之前,输出为:1 2 3 4 5

输入和输出的格式大家可以自己定,我的是这样的:

还有一种用class做的,无论升序还是逆序都写了

code

import sys# 定义类型sort_big,small->big
class sort_big(object):# 定义self参数def __init__(self, f):self.f = f# 定义sorts函数,完成排序def sorts(self):for i in range(0, len(self.f)):for j in range(0, len(self.f)-i-1):if self.f[j] > self.f[j+1]:self.f[j], self.f[j+1] = self.f[j+1], self.f[j]return f# 定义类型sort_small,big->small
class sort_small(object):# 定义self参数def __init__(self, f):self.f = f# 定义sorts函数,完成排序def sorts(self):for i in range(0, len(self.f)):for j in range(0, len(self.f) - i - 1):if self.f[j] < self.f[j + 1]:self.f[j], self.f[j + 1] = self.f[j + 1], self.f[j]return ff = [int(x) for x in input().split(" ")]
a = f
# 通过调用类函数来进行排序(small->big)
x = sort_big(f)
f = x.sorts()
for i in f:print(i, end=" ")
print(end='\n') # 换行,方便看清晰
# 通过调用类函数来进行排序(small->big)
y = sort_small(f)
f = y.sorts()
for i in f:print(i, end=" ")
print(end='\n') # 换行,方便看清晰
# sys.exit()# 停止程序,为防止运行一下程序
a.sort() # 把列表升序
# a = sorted(a) # 把列表升序
# print(a)
a.sort(reverse=True) # 把列表降序
# a = sorted(a, reverse=True) # 把列表降序
# print(a)

运行结果

Python实现冒泡排序相关推荐

  1. python实现冒泡排序完整算法_Python实现冒泡排序算法的完整实例

    冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...

  2. python实现冒泡排序视频_Python实现冒泡排序算法的完整实例

    冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...

  3. python实现冒泡排序视频_Python实现冒泡排序

    图文教程 上次,我们学习了Python中的循环.今天,我们做一个关于循环的练习,来加深大家的学习成果. 这个练习叫什么呢?我们就用Python实现冒泡排序 冒泡排序 要学习冒泡排序必须知道它的原理: ...

  4. python与冒泡排序

    上一篇文章,介绍了一个非常快的排序算法--桶排序,但是它的缺点就是太耗资源了,这次要实现的算法就不用太耗资源了,它就是冒泡排序. 问题提出: 将以下数据升序排列:9, 2, 8, 6, 4 冒泡排序原 ...

  5. Python实现冒泡排序的代码

    以下是Python实现冒泡排序的代码: 格式有点问题,重新调整一下,如下: def bubbleSort(nums):# 设置一个flag,用来判断某次循环是否发生了交换flag = Truefor ...

  6. python实现冒泡排序完整算法_利用python实现冒泡排序算法实例代码

    利用python实现冒泡排序算法实例代码 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数 ...

  7. python 实现冒泡排序的思路和代码

    当需求提到需要从小到大的排序时,我们很自然的就会想起最基础的"冒泡排序" 冒泡排序的原理就不再多说了,网上有一大堆,以下是python实现冒泡排序的代码. 对于冒泡排序算法,如果有 ...

  8. python列表冒泡排序,Python实现简单的列表冒泡排序和反转列表操作示例

    #-*-coding:utf-8-*- #g:/python #冒泡排序 #1.定义一个列表 number=[6665,666,323,124,4442,5,123,412,55] #外循环控制冒泡排 ...

  9. python学习——python实现冒泡排序算法

    python实现冒泡排序算法 一.冒泡排序算法实现原理 基本思想 具体步骤 二.图解冒泡排序 三.py代码实现冒泡排序算法 一.冒泡排序算法实现原理 基本思想 比较相邻的元素.如果第一个比第二个大,就 ...

  10. python复习冒泡排序

    冒泡排序: 思路: 先找到最大值放到最右边: #encoding=utf-8 a=[1,9,2,8,3,6,4] print "a before change:",a for i ...

最新文章

  1. 查python的软件_[Python实战]Python制作天气查询软件
  2. 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
  3. Python入门记录
  4. python中一些特殊方法的作用
  5. java中同步嵌套引起的死锁事例代码
  6. chimerge算法matlab实现,有监督的卡方分箱算法
  7. dj鲜生-10200818-商品首页展示-静态页下载资源
  8. TensorFlow第六步: 继续挖坑 用tf重写BP并增加SGD
  9. github出现Your account has been flagged.导致账号无法公开的解决办法
  10. Python项目实践:文本进度条
  11. 《鸟哥的Linux私房菜》读书笔记
  12. 使用RDPWrapper实现多用户远程登录并限制IP
  13. 静态库和动态库运行时间的区别
  14. c语言setlocale第二个参数,setlocale_本地化支持 | Localization support_C_参考手册_非常教程...
  15. ASP.Net Core实战——身份认证(JWT鉴权)
  16. 绘画板 java_非常值得学习的java 绘图板源代码
  17. Windows10记一次去掉桌面图标箭头引发的血案:该文件没有与之关联的应用来执行操作,请安装一个程序,若已安装程序,请在默认程序控制面板中创建关联。
  18. laravel ckeditor上传图片
  19. oracle--13集合
  20. DIV + CSS 学习笔记(盒模型)

热门文章

  1. 毕业后这一年,工作/生活经验回顾
  2. 【马红“名师+”研修共同体】师徒结对传帮带,青蓝同心共成长
  3. python 忽略错误_python如何忽略异常
  4. win8计算机里没有用户,Win8.1系统如何使用Microsoft账户登陆
  5. 物联网传输感知课程设计-提纲
  6. 机器学习的学习曲线和验证曲线
  7. 热门列表的实现思路整理
  8. 《JavaScript高级程序设计》读书笔记 【8章~】【持更】
  9. C++实现计算器(四则混合运算)
  10. U盘启动安装Ubuntu16.04详解