栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 排序算法——冒泡排序

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 排序算法——冒泡排序

# 数据结构与算法
# 排序算法:--冒泡排序
#冒泡排序是一种简单直接暴力的排序算法,为什么说它暴力?因为每一轮比较可能多个元素
#移动位置,而元素位置的互换是需要消耗资源的,所以这是一种偏慢的排序算法,仅适用于
#对于含有较少元素的数列进行排序。

#稳定性:我们从代码中可以看出只有前一个元素大于后一个元素才可能交换位置,所以相同
#元素的相对顺序不可能改变,所以它是稳定排序

#比较性:因为排序时元素之间需要比较,所以是比较排序

#时间复杂度:因为它需要双层循环n*(n-1)),所以平均时间复杂度为O(n^2)

#空间复杂度:只需要常数个辅助单元,所以空间复杂度为O(1),我们把空间复杂度为O(1)
#的排序成为原地排序(in-place)

#记忆方法:想象成气泡,一层一层的往上变大


def Bubble_sort(alist):
	a = len(alist)
	for i in range(n-1):
		res = True
		for j in range(n-1-i):
			if alist[j] > alist[j+1]:
				alist[j], alist[j+1] = alist[j+1], alist[j]				
				res = False
		if res == True:
			return
				
def Bubble_sort_2(alist):
	for i in range(len(alist)-1,0,-1):
		for j in range(i):
			if alist[j] > alist[j+1]:
				alist[j], alist[j+1] = alist[j+1], alist[j]

lis = [3,2,5,7,2,8,44,75,3]
Bubble_sort(lis)
print(lis)
			
			
			

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号