首页/文章/ 详情
banner

算法| 冒泡法排序

3月前浏览2668

对于一个一维的数组(列表),每个元素都和它旁边的元素作比较,顺序不对就交换位置。第一次处理全部n个元素,最大值将冒泡到数组末尾位置。第二次处理全部n-1个元素,第三次处理全部n-2个元素。以此类推,每次都将最大值元素放到最右边的位置。冒泡法的优点是任何时候数组完全排好序就可以提前退出。

来看动态演示:

下面是算法:

  For i = n to 1

            For j = 1 to i     

                in_order 标志设置为true    

                    if arr[j+i] < arr[j]

                        交换arr[j+i] 和arr[j]

                        in_order 标志设置为false

              如果in_order满足要求,跳出循环

注:不要逻辑变量in_order(python,C++叫布尔变量)也行,可以简化代码。但这样不能提前退出循环。

Fortran以及python实现:

冒泡排序步骤遍历列表并比较相邻的元素对。如果元素顺序不符合要求,则交换它们。重复遍历列表未排序部分的元素,直到完成列表排序。因为冒泡排序重复地通过列表的未排序部分,所以它具有最坏的情况复杂度O(n^2)。

来源:数值分析与有限元编程
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:3月前
太白金星
本科 慢慢来
获赞 3粉丝 5文章 311课程 0
点赞
收藏
作者推荐

算法| 选择排序

选择排序是“傻瓜式”的算法。如图所示,对于一个一维的数组(列表)第一步要找到其中的最小值将其放到第一个位置,然后找余下的最小值放到第二个位置,以此类推。来看动态演示:下面是算法: For i = 1 to n – 1 查找a[i] to a[n]的最小值 if i/=最小值索引 交换a[i] 和a[最小值索引]Fortran以及python实现:选择排序虽然是效率不是很高的排序算法,不过它在我们编程的时候还是会经常使用,使用次数有时候可能要比效率更高的那些算法更高。博主录制了一套Fortran入门教程,主要面向初学者。本教程使用的编译器 VS2017+IVF2019,遵循的语法标准为Fortran2008。内容主要第一章 基本概念第二章 Fortran基础知识第三章分支结构第四章 循环结构第五章 字符操作第六章 模块与过程第七章 数组一第八章 I/O第九章 数组二第十章 过程的高级特性第十一章 字符串的高级特性第十二章 派生数据类型第十三章 指针第十四章 链表和二叉树第十五章 Fortran扩展第十六章 IEEE运算第十七章 随机数点击【阅读原文】即可试看来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈