博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python算法(一)冒泡排序
阅读量:6370 次
发布时间:2019-06-23

本文共 1240 字,大约阅读时间需要 4 分钟。

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

 

转载于:https://www.cnblogs.com/suitcases/p/9490596.html

你可能感兴趣的文章
appium定位
查看>>
浅谈分布式数据库中间件之分库分表
查看>>
2.Python基础
查看>>
第二十一讲 任务的删除
查看>>
园区网络搭建
查看>>
Tengine动态模块扩展
查看>>
HanLP二元核心词典详细解析
查看>>
Paxos——分布式一致性算法解析
查看>>
终于拿到证了....
查看>>
Java程序员: 选择比努力更重要
查看>>
PDF编辑技巧:怎么提取PDF文件中的页面
查看>>
使用bash shell 查看Linux系统的CPU和内存
查看>>
fuse文件系统
查看>>
全球首个大网级网络操作系统CNOS正式发布
查看>>
C经典实例
查看>>
Oracle图形化的数据库管理工具
查看>>
Oracle用户、权限、角色管理
查看>>
iostat命令学习
查看>>
Spring Tool Suite生成默认的MVC项目的配置文件问题
查看>>
使用subversion搭建SVN
查看>>