码迷,mamicode.com
首页 > 编程语言 > 详细

python 冒泡排序

时间:2018-10-30 17:39:06      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:交换   color   col   print   复杂度   code   比较   style   list   

比如某数组

a = [12, 35, 99, 18, 1]

将其从小到大冒泡排序 则

第一趟:

第一次:a = [12,35,99,18,1] //12与35比较

第二次:a = [12,35,99,18,1]//35与99比较

第三次:a = [12,35,18,99,1]//99与18比较

第四次:a = [12,35,18,1,99]//99与76比较 

至此第一趟过后 最大的数在末尾 99不再参与比较

第二趟:a = [12,18,1,35,99]//35是[12,18,1,35]中最大数 将其放到末尾

第三趟:a = [12,1,18,35,99]//18是[12,1,18]中最大数 将其放到末尾

第四躺:a = [1,12,18,35,99]//12是[12,1]中最大数 将其放到末尾

所以冒泡排序后得结果是

a = [1,12,18,35,99]

其时间复杂度是O(n^2)

因为遍历了所有数n,在n的情况下交换n-1次 复杂度就是两个相乘取n^2

def bubble_sort(alist):
    for i in range(len(alist)): #循环次数
        # 跳过后面已经排好序的元素
        for j in range(len(alist)-1-i):#将这一次的所有数遍历
            if alist[j] > alist[j+1]:#判断前后两数的大小 并将其交换
                alist[j],alist[j+1] = alist[j+1],alist[j]
    return alist
a = [12,35,99,18,1]
print(bubble_sort(a))

 

python 冒泡排序

标签:交换   color   col   print   复杂度   code   比较   style   list   

原文地址:https://www.cnblogs.com/hy123456/p/9876728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!