Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法

这篇具有很好参考价值的文章主要介绍了Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

10.5.1 排序算法简介

10.5.2 冒泡排序算法

10.5.3 系统学习python


10.5.1 排序算法简介

所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,比如冒泡排序算法,选择排序算法,快速排序算法,堆排序算法等。在本节教程中,我们来掌握非常经典的冒泡排序算法。

10.5.2 冒泡排序算法

冒泡排序算法的原理很简单,相邻元素两两间进行比较,按照升序或降序的关系互换位置。比如在升序排序中,将大的气泡放在后面,小的放在前面。n个元素两两之间进行比较,只需比较n-1次,即可找出最值。找出最值后,最值自动冒泡到区间的尾部,然后再进行下一趟的比较。下图所示为将降序排列的[3,2,1]列表使用冒泡排序排成升序:

Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法

根据以上原理,我们现在使用Python语言来实现冒泡排序算法:

Python

"""
@author: 薯条老师
@desc: 实现冒泡排序算法
"""

numbers = [3, 2, 1]
n = len(numbers)

# n个元素一共需要比较n-1趟
for outer_index in range(n-1):
    # outer_index用来表示已经冒泡到尾部的气泡
    # n个元素需比较n-1次才能找出最大或最小的值,所以是n-1
    # 下一趟需在上一趟的基础上再两两间进行比较,所以得再减去outer_index
    for inner_index in range(n-1-outer_index):
        if numbers[inner_index] > numbers[inner_index+1]:
            # 如果当前气泡大于后面的气泡,就互换位置
            numbers[inner_index],  numbers[inner_index+1] = \
                numbers[inner_index+1],  numbers[inner_index]

                            
# 执行print来输出升序排序后的列表
print(numbers)

10.5.3 系统学习python

  薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。文章来源地址https://www.toymoban.com/news/detail-420436.html

到了这里,关于Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python入门教程+项目实战-11.4节: 元组与列表的区别

    目录 11.4.1 不可变数据类型 11.4.2 可变数据类型 11.4.3 元组与列表的区别 11.4.4 知识要点 11.4.5 系统学习python 不可变数据类型是指不可以对该数据类型进行修改,即只读的数据类型。迄今为止学过的不可变数据类型有字符串,元组。 在使用[]操作符对字符串,元组进行修改时

    2024年02月01日
    浏览(56)
  • 《黑马程序员2023新版黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目》学习笔记总目录

    本文是对《黑马程序员新版大数据入门到实战教程》所有知识点的笔记进行总结分类。 学习视频:黑马程序员新版大数据 学习时总结的学习笔记以及思维导图会在后续更新,请敬请期待。 前言:配置三台虚拟机,为集群做准备(该篇章请到原视频进行观看,不在文章内详细

    2024年02月03日
    浏览(70)
  • 全网最全Pytest框架使用教程和项目实战~从入门到精通

    pytest是一个非常成熟的python单元测试框架,比unittest更灵活、更容易上手 pytest可以和selenium、requests、appinum结合实现web自动化、接口自动化、app自动化 pytest可以是实现测试用例的跳过以及reruns失败用例重试 pytest可以和aliure生成非常美观的测试报告 pytest可以和jenkins持续集成

    2024年02月06日
    浏览(47)
  • 【Android入门到项目实战-- 9.5】—— 陀螺仪传感器的详细使用教程

    目录 陀螺仪传感器 1、基础知识  2、实战使用         返回x、y、z轴的角加速度数据。         水平逆时针旋转,z轴为正,顺时针为负;         向左旋转,y轴为负,向右旋转,y为正;         向上旋转,x为负,向下旋转,x为正。 修改activity_main.xml代码如下:

    2024年02月12日
    浏览(54)
  • CMake入门教程【实战篇】使用开源库cmake-modules简化项目开发与维护

    本教程介绍了rpavlik/cmake-modules,一个CMake模块集合,旨在简化和优化CMakeLists.txt文件的编写和维护工作。该集合尤其对虚拟现实和物理模拟包的开发者有用,同时也包含通用实用模块和针对旧版CMake的补丁或解决方案。 项目托管在GitHub上,可通过链接访问:rpavlik/cmake-modules 查

    2024年01月15日
    浏览(50)
  • python pytorch教程-带你从入门到实战(代码全部可运行)

    其实这个教程以前博主写过一次,不过,这回再写一次,打算内容写的多一点,由浅入深,然后加入一些实践案例。 下面是我们的内容目录: 1.先从数据类型谈起 1.1 如何生成pytorch的各种数据类型? 1.2 pytorch的各种数据类型有哪些属性? 1.3 pytorch的各种数据类型有哪些函数操

    2024年02月13日
    浏览(45)
  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(72)
  • Python入门教程32:计算程序运行的时间

    ★★★★★博文原创不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧,喜欢的老铁可以多多帮忙点赞,小红牛在此表示感谢。★★★★★ Python中可以使用time模块来计算程序的运行时间。以下是一个简单的示例:计算打印1万遍,以下文本需要的时间

    2024年02月10日
    浏览(69)
  • 微信小程序开发教程:项目一微信小程序入门 课后习题

    《微信小程序开发教程》主编/黄寿孟 易芳 陶延涛 湖南大学出版社 目录 一、单选题 二、多选题 三、判断题 四、填空题 五、简答题 1.请简述微信开发者工具中调试器功能。 2.请简述微信小程序开发环境的搭建过程。 六、编程题 1.请创建一个空白项目,在页面中输出Hello W

    2024年02月11日
    浏览(57)
  • C++引用10分钟入门教程

    我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。 对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、

    2024年01月19日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包