利用python实现冒泡排序算法实例代码

作者:pypypypy 时间:2021-06-29 17:00:14 

冒泡排序

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

冒泡排序算法的运作如下:

1、比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。

2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

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

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

冒泡排序,一个经典的排序算法,因在算法运行中,极值会像水底的气泡一样逐渐冒出来,因此而得名。

冒泡排序的过程是比较两个相邻元素的大小,然后根据大小交换位置,这样从列表左端开始冒泡,最后最大值会依次从右端冒出。 

利用python实现冒泡排序算法实例代码

python实现冒泡排序:


def bubble_sort(nums):

for i in range(len(nums) - 1):

for j in range(len(nums) - i - 1):

if nums[j] > nums[j + 1]:

nums[j], nums[j + 1] = nums[j + 1], nums[j]

return nums

python实现冒泡排序的核心思想是通过从列表一端迭代循环元素,再通过一个循环让这个元素之后的元素相邻两个比较,从而依次将最大值移动到最末端,如下图示意。

利用python实现冒泡排序算法实例代码

本想放gif图的,放不上有点问题。

关于冒泡排序的时间复杂度,在上面python实现的代码中时间复杂度是n的平方,当然可以再考虑一下极端的情况:当队列已经从小到大排好序或者从大到小排好序,从小到大排好顺序时可以只扫描一遍就结束排序,此时时间复杂度为O(n),如果是从大到小,那么就需要扫描n-1次,同时需要比较交换n-1次,时间复杂度为n的平方 。

来源:https://www.cnblogs.com/pypypy/p/11960134.html

标签:python,冒泡,排序算法
0
投稿

猜你喜欢

  • python线程池threadpool实现篇

    2022-03-21 19:37:34
  • MySQL通透详解架构设计

    2024-01-27 19:00:51
  • Python实现的将文件每一列写入列表功能示例【测试可用】

    2022-12-05 15:12:31
  • document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById

    2024-05-22 10:35:58
  • 安装完成后如何找回SQL Server实例安装时的序列号

    2024-01-16 02:07:27
  • 文档对象模型DOM通俗讲解

    2024-05-13 09:36:55
  • Python如何使用ElementTree解析xml

    2023-02-05 07:22:06
  • ADSI+ASP添加IP到IIS禁止访问列表中

    2011-04-02 10:42:00
  • SQL SERVER先判断视图是否存在然后再创建视图的语句

    2024-01-23 07:39:30
  • 从长尾理论和二八定律的比较去看用户体验

    2009-07-22 19:11:00
  • 跟老齐学Python之让人欢喜让人忧的迭代

    2022-10-02 14:33:23
  • javascript判断一个元素是否数组

    2009-07-31 12:48:00
  • Vue3响应式对象Reactive和Ref的用法解读

    2024-05-02 16:34:48
  • PHPStudy hosts文件可能不存在或被阻止打开及同步hosts失败问题

    2023-06-08 10:29:10
  • python 画3维轨迹图并进行比较的实例

    2023-12-09 21:00:18
  • Python线程之如何解决共享变量问题

    2023-08-27 16:15:56
  • pandas dataframe drop函数介绍

    2023-07-11 17:19:17
  • SecureCRTSecure7.0查看连接密码的步骤

    2021-01-28 07:34:14
  • python str字符串转uuid实例

    2021-12-31 20:15:54
  • 对Python中class和instance以及self的用法详解

    2022-09-08 23:28:14
  • asp之家 网络编程 m.aspxhome.com