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

Python算法(一)冒泡排序的更多相关文章

  1. python算法之冒泡排序

    目录 python之冒泡排序 算法原理 算法分析 代码实现 总结 python之冒泡排序 概念: 重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就 ...

  2. Python 算法之冒泡排序

    冒泡排序 冒泡排序算法的原理如下:(从后往前) 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是 ...

  3. python算法之冒泡排序和选择排序

    一.冒泡排序(Bubble sort) Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorith ...

  4. GitHub标星2.6万!Python算法新手入门大全

    今天推荐一个Python学习的干货. 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万.这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各 ...

  5. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  6. 安装Python算法库

    安装Python算法库 主要包括用NumPy和SciPy来处理数据,用Matplotlib来实现数据可视化.为了适应处理大规模数据的需求,python在此基础上开发了Scikit-Learn机器学习算 ...

  7. java基础算法之冒泡排序

    接触冒泡算法还是大一了,学习C语言的冒泡算法.现在唯一记得就是冒泡与选择了.出来刚刚工作的时候觉的算法基本没撒用处,现在发现这些都是很好的基础.因此自己也准备重新拾起这些知识. 冒泡排序 泡排序是一种 ...

  8. Java常见排序算法之冒泡排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  9. python算法(一)

    python算法(一) 一.求数x的因子 x=100 divisors=()#初始化空的元组 for i in range(1,x): if x%i==0: divisors=divisors+(i, ...

  10. java排序算法之冒泡排序(Bubble Sort)

    java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...

随机推荐

  1. Guava实现 过滤文本,排序,转换内容,分组计数转换map 等等

    重要点 :看注释 从access.log中统计数据 对healthcheck.html的请求不计入统计 输出请求总量,以及GET和POST分别的总量 输出请求最频繁的10个接口及其次数,按次数降序 输 ...

  2. 安全测试8_Web安全实战1(DVWA部署)

    1.渗透神器的打造(火狐浏览器的打造) Firebug HackBar(渗透插件) Tamper Data(抓包.截包.改包等功能) Proxy Switcher(代理设置) 2.PHP环境安装(ph ...

  3. ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - ROSMapModify - ROS地图修改

    ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - 2 - MapModify地图修改 We can use gmapping model to genera ...

  4. 2014最新 iOS App 提交上架store 详细流程

    http://blog.csdn.net/tt5267621/article/details/39430659

  5. vnc操作指南

    启动 vncserver : vncserver : -geometry 1905x1005 停止: ps aux | grep vnc kill pid 或者 vncserver -

  6. samba配置中常见错误收集.txt

    在命令行输入命令: ~$ smbclient -L \\127.0.0.1按要求输入密码后,提示出错:session setup failed: NT_STATUS_LOGON_FAILURE 这是因 ...

  7. iOS基础知识之归档和解档

    归档和解档:即将数据写入文件和从文件中读取数据. 此处以plist文件为例说明, 一.plist文件使用时的注意事项: 1.plist文件中仅支持写入Array,Dictionary,Boolean, ...

  8. centos7管理用户权限

    1.Centos创建用户并授权: https://blog.csdn.net/bug4pie/article/details/79761443 https://www.jb51.net/article ...

  9. 使用STM32CubeMX生成USB_HOST_HID工程

    使用开发板为STM32F105开发板. 原本想将具体步骤给写出来.时间有限.直接将STM32F105_USBH_HID.IOC上传files.cnblogs.com/files/libra13179/ ...

  10. TP框架(接口文档模板框架)

    https://blog.csdn.net/s390124971/article/details/51995497