冒泡排序python

Posted Roronoa-Zoro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序python相关的知识,希望对你有一定的参考价值。

思路:可以将第一次排序过程先写出来,当第i个元素大于第i+1个元素时,将两个元素位置进行交换,等于小于都不需要做任何操作

0~n-1是因为这个过程始终是第i个元素与其后一个元素相比较,不需要移动到最后一个元素

def bubble_sort(alist):
    n=len(alist)
    for i in range(0,n-1):   
        if alist[i]>alist[i+1]:
            alist[i],alist[i+1]=alist[i+1],alist[i]        

这个时候,我们需要考虑需要这样比较多少次,我们可以发现,不是每次都比较n-1次,第二次就是比较n-2次了,引入一个变量j,当第一次比较时,进行n-1次,j=0

   当第二次比较时,n-2次,j=1

   当第三次比较时,n-3次,j=2

   当第四次比较时,n-4次,j=3

   其实就是n-1-j

这时候我们可以将完整代码写完,如下:

#coding:utf-8
def bubble_sort(alist):
    n=len(alist)
    for j in range(n-1):
        for i in range(n-1-j):
            if alist[i]>alist[i+1]:
                alist[i],alist[i+1]=alist[i+1],alist[i]


a=[0,100,25,98,4,66,108,51]
print(a)
bubble_sort(a)
print(a)

最后结果如下:

 

以上是关于冒泡排序python的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序的python代码实现

python写冒泡排序

[leetcode]排序算法(冒泡排序,选择排序,插入排序,快速排序,计数排序)

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序