Python算法冒泡排序

Posted 月亮上的花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python算法冒泡排序相关的知识,希望对你有一定的参考价值。

3  5  1  6  2

1)第一次:找到这些数中最大的一个,并把它放最后。

3、5找到大的数放到第二个位置

5、1找到大的数放到第三个位置

5、6找到大的数放到第四个位置

2、6找到大的数放大第五个位置

第五个位置就是最大的

a= [3,5,1,6,2]
for i in range(len(a)-1):
    if a[i]>a[i+1]:
        a[i],a[i+1] = a[i+1],a[i]

print(a[-1]) 
2)找到最大值了,现在找次大值,次大值放在倒数第二的位置
a= [3, 1, 5, 2, 6]
for i in range(len(a)-1-1):
    if a[i]>a[i+1]:
        a[i],a[i+1] = a[i+1],a[i]

print(a[-2]) 
 
3)找第三个最大的数,放到倒数第三个
for i in range(len(a)-1-1-1):
    if a[i]>a[i+1]:
        a[i],a[i+1] = a[i+1],a[i]

print(a[-3]) 
 
4)找到第四个最大的数,放到倒数第四个
for i in range(len(a)-1-1-1-1):
    if a[i]>a[i+1]:
        a[i],a[i+1] = a[i+1],a[i]

print(a[-4]) 
5)剩下的最后一个,就是最小的数,放到第一个
 
找到规律,实现冒泡
 a= [3,5,1,6,2]
for i in range(len(a)-1):#0,1,2,3
    for j in range(len(a)-1-i):
        if a[j]>a[j+1]:
            a[j],a[j+1] = a[j+1],a[j]

print(a) 
 
 
总结一下过程:
第一次内层循环的结果就是找到最大的值
第二次内层循环的结果就是找到次大的值,本次将忽略最后一个元素的比较
第三次内层循环的结果就是找到第三大的值,本次将忽略倒数第二个元素和最后一个元素的比较
第四次内层循环的结果就是找到第四大的值,本次将忽略倒数第三个元素和倒数第二个元素和最后一个元素的比较
剩下的最后一个,就是最小的数
.......
 

两个数在python中如何交互位置

两种写法:

1、

a,b = b,a

2、

temp=a

a=b

b=temp

 

 

 

 

a=[7,2,4,21,44,3]

 

两个for循环,第一层控制比几次,第二层控制怎么比

升序

for i in range(1,len(a)):

    for j in range(len(a)-1):

        if a[j]>a[i]:

            a[j],a[i]=a[i],a[j]

print a

 

 

降序

for i in range(1,len(a)):

    for j in range(len(a)-1):

        if a[j]<a[i]:

            a[j],a[i]=a[i],a[j]

print a

 

 

 

两个for循环,第一层控制比几次,第二层控制怎么比

升序

for i in range(1,len(a)):

    for j in range(len(a)-1):

        if a[j]>a[i]:

            a[j],a[i]=a[i],a[j]

print a

 

 

降序

for i in range(1,len(a)):

    for j in range(len(a)-1):

        if a[j]<a[i]:

            a[j],a[i]=a[i],a[j]

print a

 




























以上是关于Python算法冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

Python版冒泡排序算法

python三级算法:排序——冒泡排序

Python—冒泡排序算法

python冒泡排序算法

Python数据结构与算法(12)---冒泡排序

Python数据结构与算法(12)---冒泡排序