本篇以对元素从小到大有序排列为例,比较了选择排序法和冒泡排序法的相同点和不同点。

同:

1.循环结构相同:均采用了与i有关的for循环和与j有关的for循环的双层嵌套模式

2.最后结果相同:均实现了对元素从小到大的有序排列

异:

1.比较方式不同:在每一次与i有关的for循环里,选择法确定了一个受i值影响的元素(锁定元素),再将该元素与其余元素比较大小,并进行相应的数值交换;而冒泡法从数组的某一端出发,总是对相邻的两个元素进行比较和数值交换。(选择一动一静,冒泡两者均动)

2.筛选结果不同:在两者均从数组首部开始的情况下,选择法优先排出数组中较小的数;冒泡法优先排出数组中较大的数。

3.比较次数不同:若在两种方法中均不进行任何跳出循环的机制,均对n个数进行比较排序,选择法全程进行趟数为(n-1)趟,在第k趟中进行了(n-k)次,其中k∈[1,n-1],总共进行了n(n-1)/2次;冒泡法理论上进行了无限多趟,每趟进行了(n-1)次。

说明:一趟是指的i值自增了一次,在选择法中体现为锁定元素的移动,在冒泡法中体现为出发次数增加一次。

4.结束方式不同:选择法由于输入元素个数有限,因其锁定元素的次数有限,故而采用循环中的条件判断结束。冒泡法由于未对出发次数作具体限制,故而采用与if有关的条件判断跳出与i有关的for循环而结束。

选择排序法和冒泡排序法的比较相关推荐

  1. 选择排序法和冒泡排序法

    选择排序法和冒泡排序法 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序 ...

  2. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  3. python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  4. 比较交换/(选择)排序法和冒泡排序法(C语言)

    问题:C语言一维数组排序,读入一个正整数 n , 再读入 n 个整数(1<n<=10) 样例: 请输入元素个数:5 请输入 5 个整数: 3 2 1 5 4 排序后: 1 2 3 4 5 ...

  5. 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

    这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...

  6. Java基础语法——选择排序、冒泡排序以及二分查找法和Arrays类的使用

    本文将带你了解选择排序.冒泡排序以及二分查找法的原理和代码实现,以及通过Arrays类快速实现对数组的一些操作 文章目录 一.选择排序 二.冒泡排序 三.二分查找法 四.Arrays类(对数组的操作) ...

  7. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

  8. c语言入门中冒泡排序的例题,选择排序和冒泡排序例题解析(c语言)

    排序算法排序算法 1.简单选择排序简单选择排序 假设有 n 个数,作简单选择排序简单选择排序,按升序排列: 先通过 n-1 次比较,从 n 个值中找出最小值,将它与第一个值交换. 再通过 n-2 次比 ...

  9. 常见排序算法详解(插入排序、希尔排序、选择排序、冒泡排序、快速排序)

    1.1 插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找 ...

  10. c 冒泡排序_C语言中选择排序和冒泡排序

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://blog.csdn.net/zjy18886018024/cate ...

最新文章

  1. linux下目录的个个文件夹含义
  2. HBase thrift C++编程
  3. MyBatis 缓存详解-cache 缓存
  4. SQL语言基础:常用的数据查询语句
  5. 2021,我的输入输出
  6. 取消hibernate的外键生成
  7. Kubernetes通过一行shell命令给pod中的zk节点添加权限
  8. pythonnumpy算术函数_python的numpy.prod函数运行实例详解
  9. python写病毒代码_手把手教你!100行代码,用Python做一个“消灭病毒”的小游戏...
  10. C# Remoting理解
  11. 微信朋友圈评论功能测试
  12. python配色_Python数据分析之Seaborn(配色方案)
  13. 【云原生之Docker实战】使用Docker部署Lsky Pro个人图床平台
  14. Prometheus监控告警规则
  15. android 动态权限aop,Android — AOP 动态权限申请
  16. OKR教练:OKRs-E如何帮你落地OKR
  17. 滤波、信号、数字与模拟、金字塔 一看就懂 教程
  18. SQL Server 数据库表修改主键字段长度
  19. 大数据杀熟为何屡禁不止
  20. 小陈谈JAVA(数组到底是怎样的,三分钟让你彻底认识数组)

热门文章

  1. XTUOJ 1176 I Love Military Chess(模拟)
  2. 服务器内存故障预测居然可以这样做
  3. PDF上有黄色聊天小标记
  4. 图解通俗理解对比学习(Contrastive Learning)中的温度系数(temperature)
  5. 人类dna信息量_基因,染色体,DNA三者之间的关系
  6. 俄罗斯画师Mikhail Rakhmatullin作品
  7. 安卓小人html制作,安卓小人.html
  8. android:使用XML文件定义菜单项的选项菜单
  9. 笑着面对上班,这些表情包让你心情愉悦
  10. 重庆计算机的发展,2010-2014年重庆市计算机与网络发展情况