冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个 相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

冒泡排序算法的原理如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

import datetime
import randomtest_list = list()
for i in range(500):test_list.append(random.randint(1, 1000))
start = datetime.datetime.now()
###########################################################################n = len(test_list)
for i in range(n):for j in range(0, n - i - 1):if test_list[j] > test_list[j + 1]:test_list[j], test_list[j + 1] = test_list[j + 1], test_list[j]###########################################################################
test_list.reverse()
print(test_list)
stop = datetime.datetime.now()
time = (stop - start)
print(time)

算法稳定性

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。 [1]

Python-冒泡排序法相关推荐

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

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

  2. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  3. python输入十个数用冒泡排序_python 冒泡排序法

    我们先看一个代码: 这段代码的意思是:利用随机整数函数randint()生成1到35的随机数.通过while循环10次,生 成10个这样的随机数.将生成的10个随机数组成一个列表,并用冒泡排序法来对该 ...

  4. python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  5. python数组冒泡排序法_python 冒泡排序法

    我们先看一个代码: 这段代码的意思是:利用随机整数函数randint()生成1到35的随机数.通过while循环10次,生 成10个这样的随机数.将生成的10个随机数组成一个列表,并用冒泡排序法来对该 ...

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

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

  7. 冒泡排序法 - python版详解

    冒泡排序法 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,每次比较相邻两个元素的大小,如果list[i] > list[i+1]就把他们交换位置.遍历数 ...

  8. 冒泡排序法定向冒泡排序法的Python实现

    冒泡排序法 冒泡排序法:每轮对相邻的两者进行比较,若顺序不对,则进行位置互换,每轮都将使每轮的 最后一位是该轮的大数. 比如在数列:[71, 1, 14, 78, 75, 38, 10, 49, 40 ...

  9. 抢红包算法 c++_十大排序算法(一):冒泡排序法

    作者:绿皮长条瓜 目录 一.算法介绍 二.MATLAB实现 三.两个例子 一.算法介绍 冒泡排序(Bubble Sort)算法是一种计算科学领域的较简单的排序算法.它重复地走访过要排序的元素列,如果顺 ...

  10. Python 冒泡法

    Python 冒泡法 Introduction 冒泡法,也称为冒泡排序,是一种简单的排序算法,它重复地遍历要排序的列表,比较每对相邻的项,并在必要时交换它们的位置. 这个算法从底部开始,因此较小的值会 ...

最新文章

  1. android图片压缩总结
  2. 轴只显示5个刻度_组团投资5亿元!武平集中签约5个新型显示产业链投资项目
  3. map.js的编写(js编写一个对象的方式)
  4. matlab eval 不显示,matlab中 eval(command); 运算符无效的问题
  5. 1221. 分割平衡字符串
  6. mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...
  7. Java 中关键字transient引出序列化与反序列化
  8. FLEX中restrict限定TextInput输入
  9. [数字dp] hdu 3271 SNIBB
  10. 「罗马人的故事I 罗马不是一天建成的」读后感
  11. 统计软件测试应用,应用统计过程控制监控软件测试过程.PDF
  12. 大量监控视频如何存储?
  13. 【python】词云图制作
  14. ecshop模板如何修改详细图解
  15. 平板电脑如何刷linux,平板电脑刷windows的方法是什么_如何把平板刷windows图文步骤...
  16. 【1-2】非本人智慧结晶,有疑问请咨询相关技术人员!
  17. SAP中通过BOM物料清单应用程序配置来解决BOM清单显示及导出问题实例
  18. iOS开发-常用的数学方法
  19. 网易云信短信接口java_网易云短信接口测试
  20. Optimizing App Startup Time

热门文章

  1. 2022-09-07 网工进阶(三十)以太网交换安全-端口隔离、MAC地址表安全、端口安全、MAC地址漂移防止与检测、链路层安全、流量抑制、风暴控制、IPSG(IP Source Guard)
  2. android 通过电话号码来获取联系人姓名
  3. 涂鸦LZ201-CN开发板学习笔记(一)
  4. 软件工程大作业(完整详细)火车订票管理系统
  5. 今年计算机考研又炸了?!
  6. android 电池续航时间,如何提高安卓手机电池续航能力 这份省电指南拿好
  7. word添加参考文献和标注的详细简单方法
  8. Kubernetes CSI 介绍及使用
  9. Monorail学习笔记
  10. 勒索软件攻击为何越来越多?