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

冒泡排序

时间:2017-05-01 21:03:06      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:顺序   排序   bsp   冒泡排序   基础知识   span   元素   class   div   

冒泡排序基础知识:

交换两个变量的值:

方法一:

a1 = 123
a2 = 546
a1,a2=a2,a1
print(a1,a2)

以上代码执行结果

546 123

方法二:

a1 = 123
a2 = 546
temp = a1
a1 = a2
a2 = temp
print(a1,a2)

以上代码执行结果:

546 123

 

冒泡排序: 对相邻的两位进行比较,大小顺序不对就交换位置:

升序排列

对列表进行第一次排序:

li = [8,55,53,1]
for i in range(len(li)-1):    #第一次排序,要经过总个数减一次。
    if li[i] > li[i + 1]:
        li[i], li[i + 1] = li[i + 1], li[i]
print(li)

以上代码执行结果:

[8, 53, 1, 55]

每次排序后,最后一位不用再排列,4个数最多经过3次排序可以排完。

li = [8,55,53,1]

for i in range(len(li)-1):
    if li[i] > li[i + 1]:
        li[i], li[i + 1] = li[i + 1], li[i]
print(li)


for i in range(len(li)-2):
    if li[i] > li[i + 1]:
        li[i], li[i + 1] = li[i + 1], li[i]
print(li)

for i in range(len(li)-3):
    if li[i] > li[i + 1]:
        li[i], li[i + 1] = li[i + 1], li[i]
print(li)

以上代码执行结果:

[8, 53, 1, 55]
[8, 1, 53, 55]
[1, 8, 53, 55]

最终代码:

li = [8,55,53,1]
for j in range(1,len(li)):     # 排序次数为列表元素总个数减一
    for i in range(len(li)-j):  # 每次排序后,最后一位不用再排列
        if li[i] > li[i+1]:
            li[i],li[i+1]=li[i+1],li[i]
    print(li)

以上代码执行结果

[8, 53, 1, 55]
[8, 1, 53, 55]
[1, 8, 53, 55]

 

冒泡排序效率很低。

 

冒泡排序

标签:顺序   排序   bsp   冒泡排序   基础知识   span   元素   class   div   

原文地址:http://www.cnblogs.com/xone/p/6792606.html

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