冒泡排序
Posted xone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
冒泡排序基础知识:
交换两个变量的值:
方法一:
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]
冒泡排序效率很低。
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章