首页/文章/ 详情

算法| 冒泡法排序

2年前浏览3880

对于一个一维的数组(列表),每个元素都和它旁边的元素作比较,顺序不对就交换位置。第一次处理全部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
最近编辑:2年前
译码当先
本科 慢慢来
获赞 14粉丝 32文章 403课程 0
点赞
收藏
作者推荐

算法| 选择排序

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

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