首页 > 编程语言 > 详细

冒泡排序

时间:2017-05-01 20:16:18      阅读:300      评论:0      收藏:0      [点我收藏+]

冒泡排序基础知识:

交换两个变量的值:

方法一:

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]

 

冒泡排序效率很低。

 

冒泡排序

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!