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

冒泡排序python

时间:2020-05-15 18:13:31      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:代码   等于   图片   完整   引入   ble   bsp   for   冒泡排序   

思路:可以将第一次排序过程先写出来,当第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

标签:代码   等于   图片   完整   引入   ble   bsp   for   冒泡排序   

原文地址:https://www.cnblogs.com/cong3Z/p/12896026.html

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