python实现排序之冒泡排序

冒泡排序:是将一串无需的数字,排列成有序的。通过相邻的两个数作比较,大的往后移,经过反复的比较,最后得出一串有序的数列。

 

那么用代码该如何实现?

  其实这个问题的思路就是判断每相邻的两个数,进行大小比较,然后交换位置,判断大小容易,麻烦的是交换位置。python的“解构”就能很好的解决这个问题。

 

先看一段小代码

 

a = 10
b = 20
# 如何交换a,b的值,让a=20,b=10
a,b = b,a
print(a,b)
# 20 10

 

  通过上面解构的方式就可以将两个值互换。

  如果定义第一个数为的索引count,那么第二个数的索引就是count + 1。

 

 

 

a = [1,2,3,4,5,66,552,3,655,4,2,11,565,6,445,6,32,5,4,56,65] #12个数 索引0-11
count_1 = 0
while count_1 < len(a):  #里面的循环的每循环完一次,最大的那个说就移动到最右边,这个循环是有几个数就循环几次。
    count = 0
    while count < len(a) - 1:  #定义while循环的次数,本次循环是将列表中的最大值移动到最右边
        if a[count + 1] > a[count]:   #比较count和count+1的大小
            a[count],a[count + 1] = a[count + 1],a[count]  #如果count>count+1,那么通过解构的方式互换两个值的位置
        else:
            pass  # 如果count不大于count+1,那就直接pass
        count += 1
    count_1 += 1
print(a)

 

posted @ 2017-12-05 15:41  王剑威  阅读(510)  评论(0编辑  收藏  举报