博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现冒泡排序算法
阅读量:7110 次
发布时间:2019-06-28

本文共 586 字,大约阅读时间需要 1 分钟。

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

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


d088a9356bb0dc31844735204ffb458d1c158f78


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

9af0e4278f9c9fb8267f4be6f8590b611877a85b

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


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

转载地址:http://gxmhl.baihongyu.com/

你可能感兴趣的文章
生产性能运维监控之TOP介绍
查看>>
如何利用边缘计算,实现低延时、高质量的互动课堂体验?
查看>>
第二次课程作业
查看>>
我的友情链接
查看>>
Linux 目录和文件管理
查看>>
svn安装与基本错误
查看>>
Mac Eclipse项目转换到AndroidStudio项目
查看>>
详解Node.js API系列 Crypto加密模块(1)
查看>>
可用于权限计算的帮助类
查看>>
如何在samba服务器上添加用户
查看>>
SQLite中的SELECT子句
查看>>
Metasploit AFP爆破模块afp_login
查看>>
North Carolina center Nike Air Max 2011
查看>>
我的友情链接
查看>>
查找yum安装文件路径
查看>>
cut命令
查看>>
linux装oracle10.0.5简记
查看>>
Linux命令:DNS应用
查看>>
Linux图形界面常用操作方法
查看>>
简单的动态线性表
查看>>