用phyon实现冒泡排序
冒泡排序是一种简单的排序算法。它适合小规模数据的排序,并且其效率比较低,但是作为一个入门的算法,还是值得学习的。
1. 什么是冒泡排序?
冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
2. 算法描述(此处以正序为例)
比较相邻的两个数,如果第一个数比第二个数大,则两数交换。
对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 lst.length-1。
之后对所有的元素重复以上的步骤;
重复上述步骤,直到排序完成
3.算法代码
下面以6个无序的6个整数为列实现排序
lst = [22, 33, 44, 2, 5, 6] for i in range(6): i = 0 while i < len(lst)-1: if lst[i] > lst[i+1]: lst[i], lst[i+1] = lst[i+1], lst[i] i = i+1 print(lst)
结果执行结果为:[2, 5, 6, 22, 33, 44]
4.时间复杂度的分析
当最好的情况,也就是要排序的表本身就是有序的,那么我们比较次数,那么可以判断出就是n-1次的比较,没有数据交换,此时时间复杂度为O(n)。写一次论讨公式还不会用,最坏的情况后续分析