冒泡排序python实现

去年写过一篇冒泡排序python实现,外层多了一层循环,这里更正过来~

算法思想

冒泡排序(以从小到大排序为例)的思想在于,不断地将当前元素与后一个元素进行比较,如果当前元素较小,则调换当前元素与后一个元素的位置,否则保持不变;假设需要排序的元素一共有nnn个,在iii轮排序过程中,从第一个元素开始,跟后续的(n−i)(n-i)(n−i)元素进行上述比较(注意:上一轮排序得到的结果不需要拿到下一轮作比较)。最终的排序结果中,开头的元素是最小值,结尾的元素是最大值。
这里是冒泡排序的动画演示。

代码示例


list_test = [12,-57,23,85,56,-123,-456,250]class bubsort():def __init__(self):self.list_test = list_test# 用while循环实现def bubble_v1(self):n = len(self.list_test)# 进行(n-1)趟排序while n>1:# 每趟排序从第一个元素开始,逐个与后面的元素比较i = 1while i<n:# 如果后面的元素比前面的元素小,交换两者位置if self.list_test[i]<self.list_test[i-1]:self.list_test[i],self.list_test[i-1] = self.list_test[i-1], self.list_test[i]i+=1n-=1return self.list_test# 用for循环实现def bubble_v2(self):n = len(self.list_test)# 比较(n-1)轮for i in range(n-1):# 第i轮比较(n-i)次for j in range(n-i-1):# 如果后面的元素比前面的元素小,交换两者位置if self.list_test[i]>self.list_test[i+1]:self.list_test[i],self.list_test[i+1] = self.list_test[i+1], self.list_test[i]return self.list_testif __name__ =='__main__':getresult = bubsort()print(getresult.bubble_v1())print(getresult.bubble_v2())

冒泡排序python实现相关推荐

  1. 冒泡排序python 代码

    冒泡排序 python 代码 冒泡排序就是"大数沉底"通过排序后从小到大排序 class Bubble(): def sort(self,list): for i in range ...

  2. 冒泡排序python代码_Python-排序-冒泡排序-优化

    这是我通过极客专栏<数据结构与算法之美>学习后的思考,分享一下,希望对你有所帮助.上一篇文章 工作后,为什么还要学习数据结构与算法 的思维导图展现了这个专栏的内容. 说到算法中的排序,冒泡 ...

  3. python冒泡排序函数_python冒泡排序-Python,冒泡排序

    arr = [ 7 , 4 , 3 , 67 , 34 , 1 , 8 ] . def bubble_sort : 最近在学习Python,下面是我的一些笔记 冒泡排序 实现思路: 使用双重for循环 ...

  4. 啊哈算法 --对冒泡排序python写法

    ''' 冒泡排序: 基本思想是每次比较两个相邻的元素,如果位置错误就相互交换位置,知道所有的位置都是正确的. 核心是双重嵌套循环,时间复杂度是0(N2),是个非常高的时间复杂度. 依次将数组内的数与后 ...

  5. 冒泡排序 python内置_除了冒泡排序,你知道Python内建的排序算法吗?

    选自hackernoon,作者:Brandon Skerritt,机器之心编译,参与:高璇.思源.对于编程算法,可能很多读者在学校第一个了解的就是冒泡排序,但是你真的知道 Python 内建排序算法 ...

  6. 冒泡排序python和C语言

    目前已更新到python的冒泡排序实现 冒泡排序的核心思想:因为冒泡排序的实现方法是在目标数组中的元素排列方式是由小到大,从一个数组的第一个元素开始,比较相邻两个元素的大小,若较大的元素在前面则调换两 ...

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

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

  8. 冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...

    这节课我们对于冒泡排序法的课后习题进行一下解答: 回顾一下我们的题目: 上节课我们学习的冒泡排序法,是让我们的list从小到大进行排列,这次我们的任务是,请对冒泡排序法进行一定的修改,加一个参数,让它 ...

  9. 冒泡排序--python(详解)

    对于一个数组:[4, 6, 3, 9] 第一轮: 第一次比较(4<6):两数不用进行交换 数组不变为[4, 6, 3, 9] 第二次比较(6>3):两数进行交换 得到一个新数组[4, 3, ...

最新文章

  1. linux什么是实时调度,Linux中的实时调度
  2. 部门工作中的“求同存异”法则
  3. redis服务器学习一
  4. mysql降低数据库版本_三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQ...
  5. java thread.notify_Java Thread notify()方法
  6. 一个小偷写给失主的信【爆笑】
  7. 如何在Debian下快速安装中文字体
  8. PowerShell为什么强大
  9. 云栖号在线课堂—云服务器数据库快速入门特辑
  10. 机翻福音-多种语言平行语料库资源
  11. 挑选适合自己的乒乓球拍【转】
  12. 计算机运维中常见英语单词,芯片常用英文词汇整理.doc
  13. Android模拟屏幕鼠标
  14. 升级Win11后Win安全中心丢失或者点击没反应的解决方法
  15. 基于Python的换脸应用
  16. Ubuntu 17.10 中文无忧版
  17. 建设银行检测到设备已被Root的判断
  18. Python资源大全--收藏好
  19. Java播放mp3并简单实现歌词同步
  20. python求13号是星期几的次数_Python简单计算给定某一年的某一天是星期几的教程...

热门文章

  1. 《大红包》电影观后感
  2. 【LUA table 移除操作非常慢】
  3. 快速体验 Sentinel 集群限流功能,只需简单几步
  4. [MicroPython]TurnipBit开发板旋转按钮控制直流电机转速
  5. java 容器、二叉树操作、107
  6. 【转】Asp.net控件开发学习笔记整理篇 - WebControl基类
  7. Java剖析工具JProfiler入门使用教程:离线剖析和触发器
  8. Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)。
  9. hdu-2553 N皇后问题(深搜 + 状态压缩)
  10. 【CSS古话今说】-- 01.神奇的CSS-BFC在实战中的应用