Python算法之冒泡排序
冒泡排序是什么
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。
冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种优化对于提升性能来说并没有什么太大作用。
算法步骤
Step1: 比较相邻的元素。如果第一个比第二个大,就交换他们两个的位置。
Step2: 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最大的数就是最后一个元素。
Step3: 针对所有的元素重复以上的步骤,除了最后一个以外(因为它已经是排序完成后的)。
Step4: 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实现 import time def waste_time(func): #计算方法执行时长的装饰器 def function(*args,**kwargs): start_time=time.time() result=func(*args,**kwargs) end_time=time.time() spend=end_time-start_time print("函数%s 总共耗时%.3f秒:"%(func.__name__,spend)) return result return function @waste_time def bubbleSort(alist): #传入一个列表,如果是有序的,则只需要检测一轮,查看是否进行交换,如果没有进行交换,说明是有序列表则直接退出循环 n=len(alist) for i in range(n-1): count = 0 #用于标记是否有交换的情况 for j in range(n-1-i): if(alist[j] > alist[j+1]): alist[j],alist[j+1]=alist[j+1],alist[j] count+=1 #判断count是否等于0,如果是0的话表示没有交换 if(count==0): break if __name__ == "__main__": alist=[9,20,5,88,66,77,30] #无序列表 print("the init list is:",alist) bubbleSort(alist) print("the sorted list is:",alist) blist=[5, 9, 20, 30, 66, 77, 88] #有序列表 bubbleSort(blist) print(blist)
初次投资无土栽培者,可先从基质培做起,更容易获得成功基质培本身与土壤栽培结构非常相似,尤其是基质定植对于作物本身有一定的缓冲期。导读在传统的温室大棚土壤种植模式下,对于病害的发生基本都是由于土壤的问题引起的。其中尤其是重茬的问题,造
手机选购的知识汇总全文5000字,建议点赞收藏后阅读。数据来源于网络,如有错误,请指正。大家在买手机之前,经常会问这样的问题2000元手机,玩游戏不卡女生,想买3000元手机,拍照要好我们在买手机的
小米11,Pro,Ultra,青春版,哪个值得买?随着小米历史上最长的春季发布会,小米11系列已经发布了4款机型。覆盖了3999到6999的价格区间。下面介绍一下4款手机的功能差异,便于进行选购参考小米112020年12月28发布
WIFI6技术概述2018年10月4日,WiFi联盟正式宣布将下一代WiFi技术802。11ax更名为WiFi6,并将前两代技术802。11n和802。11ac分别更名为WiFi4和WiFi5。Wi
华为发布首款全屋WiFiH6,优缺点分析这次的华为H6,是华为的全屋智慧家庭的基础设备。包含1个母路由,1个子路由Pro,2个子路由标准版。通过有线连接的方式,进行有线回程的MESH组网。母路由是有线路由,仅管理子路由,
2021年小米路由器选购指南小米路由器在更换路由器团队之后,推出的一些路由器产品性能上增强不少,系统也稳定了一些,凭借着性价比,有几款产品可供选择。小米官网在售的路由器小米现在在售的路由器有6款。电商还有一款
微信读书的电子书出来了,香不起来千呼万唤始出来的微信读书的硬件,毫无惊喜可言,最让人惊讶就是这个定价了。微信读书的APP,应该是国内电子书阅读类APP中,月活最高的了。其他类似APP有京东阅读,网易蜗牛阅读,掌阅
微信读书的电子书出来了,香不起来千呼万唤的微信读书自己的硬件终于出来了。可以在微信读书中进行预约。1499,送1年会员。这个价格让人失望了硬件配置6英寸14481072300DPI冷暖双色温谦光内存2G,存储32
天沟是连栋温室最大的散热源,粘贴橡塑板,可节能10以上连栋温室这个词,很多网友都比较陌生。但是对于智能温室这个词叫得比较多,实际上从温室行业专业称呼,文洛式温室,也就是温室的顶部是波浪式的结构。从这样的结构设计的因素,行业中习惯称为连
日光温室如何维护?保障使用年限效果最佳,值得菜农深思的问题导读日光温室有些网友并不一定知道,但是暖棚或塑料大棚这两个词应该都不陌生的。日光温室可以理解为大名,暖棚和塑料大棚可以理解为小名。但对于日光温室的建设也确实是存在多样化的,但最主流
荷载因素,影响连栋温室整体结构设计和造价,关键决定了使用年限在关于温室荷载,可以简单的理解为温室的承重性。而它在温室整体的设计上起到非常关键的因素,也是直接决定温室整体结构的安全性问题。这一点用老百姓通俗的的话讲就是温室大棚可以使用几年啊!