1.冒泡排序:

  ①、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  ②、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数(也就是第一波冒泡完成)。

  ③、针对所有的元素重复以上的步骤,除了最后一个。

  ④、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2.选择排序:选择排序是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

  分为三步:

  ①、从待排序序列中,找到关键字最小的元素

  ②、如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换

  ③、从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束

3.插入排序:

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

  插入排序还分为直接插入排序、二分插入排序、链表插入排序、希尔排序等等,这里我们只是以直接插入排序讲解

4.总结:冒泡排序最简单,但性能没有后两种好,在一般情况下,假设数据量不大,数据基本有序时,选择插入排序

转载于:https://www.cnblogs.com/timeboy/p/9464428.html

冒泡、选择、插入排序算法相关推荐

  1. php三个数字比较大小排序,php中常用的4种实现数字大小排序的冒泡选择等算法函数代码...

    分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中按照从小到大的顺序进行排序. 本站收录这篇文章php中常用的4种实现数字大小排序的冒泡选择等算法函数代码,详细解说文章中相关排序 冒泡 ...

  2. c#冒泡、快速、选择和插入排序算法的项目应用

    在之前的一篇文章里,我们简单地实现了对一维数组的四种排序算法,但是在实际的项目中,我们排序的方式可能(几乎是一定)不止仅仅按照数字排序.我们常常按照合适的需要的排序方式进行排序,比如航班信息可能按时间 ...

  3. python sort 部分元素_Python 简单排序算法-选择、冒泡、插入排序实现

    写文章主要是记录自己每天学习的东西,本篇文章主要介绍数据结构中常用的简单的排序算法,虽然这些算法用Python实现起来不是十分的高效,不如c.java之类的运行速度快,应用Python实现主要是为了: ...

  4. 简单选择排序_一文带你读懂排序算法(一):冒泡 amp; 快速选择排序 amp; 简单插入排序算法...

    点击上方「蓝字」关注我们 排序是确保数据规则有序的有效手段.日常开发里,我们常用到的是"冒泡"."插入排序"."选择排序"三种.大部分情况下 ...

  5. 回炉篇5—数据结构(4)之冒泡、选择、插入排序算法

    冒泡.选择.插入排序算法 排序大家都很熟了,很古老的算法,古老才有必要回炉再看一遍,经典才值得研究. 1.冒泡排序 从字面意思理解,水泡从水底冒出到水面的过程中,由小慢慢大,最后大泡泡冒出水面,了解这 ...

  6. java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序...

    算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法.前者是推理实现的算法,后者是操作实现的算法. ...

  7. C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划

    C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...

  8. 冒泡排序、选择排序、插入排序算法及时间复杂度详解

    冒泡.选择.插入排序算法及其时间复杂度详解 冒泡排序 选择排序 插入排序 冒泡排序 流程: 把0到N个元素中的最大值放在N位置 把0到N-1个元素中的最大值放在N-1位置 把0到N-2个元素中的最大值 ...

  9. 上标3下标6算法_插入排序算法导学案

    本文为"选考VB算法专题系列讲座9插入排序算法"视频配套的导学案,请同学们先完成导学案再收看视频.明天将推送"选考VB算法专题系列讲座9插入排序算法"视频,敬请 ...

最新文章

  1. 辅助驾驶等级_自动驾驶分为几级?我们离真正的自动驾驶还有多远?
  2. CSS之定位布局(position,relative定位布局技巧)
  3. hive-内置函数(常用内置函数汇总)
  4. 10大PHP比特币开源项目
  5. Struts2常量配置
  6. spring实战笔记6---springMVC的请求过程
  7. call需要多大带宽 video_从游戏的发展趋势看,未来显存多大能够用?
  8. java中如何访问类中的字段_java – 在子类中使用super关键字访问超类私有字段
  9. Android Studio插件GsonFormat详解
  10. 肿瘤外显子数据分析 -- 20201119
  11. 数据结构-树的进阶-串联各科知识
  12. samba服务器的位置文件是,从windows通过samba服务器访问文件问题
  13. 【Java之五子棋】——java五子棋游戏
  14. Constraint of Oracle studing
  15. 12.Linux 网络配置
  16. 网页中插入视频播放代码全集
  17. 安全设计 -- 会话安全
  18. 动态链接(地址无关技术)
  19. iframe X-Frame-Options
  20. 干货文稿|当模型预测控制遇见机器学习

热门文章

  1. 每天一道LeetCode-----括号匹配
  2. C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别
  3. php json返回sql,php – 如何从我的特定SQL查询中返回json?
  4. 6.切勿对STL容器的线程安全性有不切实际的依赖
  5. nginx的函数调用
  6. Consul etcd ZooKeeper euerka 对比
  7. kafka报错打开文件数过多导致kafka关闭
  8. 记录之关于tensoflow中使用Adam优化算法导致模型保存时参数的变化的记录
  9. pipenv ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data‘
  10. STL库容器vector at函数