网站首页 > 基础教程 正文
'''
冒泡排序原理:比较列表中相邻的两个元素大小,如果第2个元素比第1个元素大,就交换它俩的位置,从列表的开始到结尾,
依次对每一组相邻的2个元素都进行比较,这样最大的元素就排到了最前面,第一轮排序结束。
继续循环上面步骤,一直到只剩下一个元素没有排序为止,排序结束
例如数组:{38,65,97,76,13,27,49},具体排序过程如下:
第1轮排序:97 [65 76 38 27 49 13]
第2轮排序:97 76 [65 38 27 49 13]
第3轮排序:97 76 65 [38 27 49 13]
第4轮排序:97 76 65 49 [38 27 13]
第5轮排序:97 76 65 49 38 [27 13]
第6轮排序:97 76 65 49 38 27 [13]
'''
#实现代码
def bubble_sort(arrays):
for i in range(len(arrays)-1):
for j in range(len(arrays)-i-1):
if arrays[j]<arrays[j+1]:
arrays[j],arrays[j+1]=arrays[j+1],arrays[j]
return arrays
if __name__ == '__main__':
arrays = [38, 65, 97, 76, 13, 27, 49]
print("排序前:" + str(arrays))
print("排序后:" + str(bubble_sort(arrays)))
看一下执行结果:
时间复杂度:冒泡排序中需要进行 n-1 轮“冒泡”,每一轮“冒泡”需要进行 n-i 次比较和交换操作,i 的平均值为 n/2,时间复杂度为 T(n)=n(n-1)/2,再乘每次操作的步骤数,所以冒泡排序的时间复杂度为 O(n^2)
空间复杂度:O(1)
欢迎大家关注我的微信公众号:
- 上一篇: Python 快速排序:高效算法一探究竟
- 下一篇: Python 排序了解一下
猜你喜欢
- 2024-11-22 Python 实现经典算法之堆排序
- 2024-11-22 Python版排序算法总结
- 2024-11-22 python冷门操作-11.list排序干货
- 2024-11-22 Python 排序了解一下
- 2024-11-22 Python 快速排序:高效算法一探究竟
- 2024-11-22 Python实现快速排序
- 2024-11-22 python对象自定义排序你知道吗
- 2024-11-22 Python应用——自定义排序全套方案
- 2024-11-22 Python函数知识整理
- 2024-11-22 冒泡排序(python版)
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)