对冒泡排序,简单选择排序,简单插入排序的比较 (在线性、部分性、稳定性)

在这里插入图片描述

1、在线性

冒泡排序、选择排序:得在已知全部的数据的情况下进行排序
简单插入:可以不断加入新的元素,它是在排序中不断更正的
*从上图可以观察得到:在第三次的排序结果中:简单选择排序和冒泡排序在排好的部分(图中蓝色部分)和最终的排序结果一样,而简单插入第三次排序的排好部分和最终结果不一样,也证实了上述观点
例如:简单插入排序可用于在线排名(因为用户可能增加)

2、部分性

冒泡排序、选择排序:得在已知全部的数据的情况下进行排序
简单插入:可以不断加入新的元素,它是在排序中不断更正的
(同上)只不过要在这点说明部分性的作用
例如:冒泡、选择排序可用于查找top10元素(不需要排好所有的元素)

3、稳定性

*何为稳定性呢?

并不是 说不同的存储方式会导致数据不稳定、改变、丢失等
而是一个序列中的一个数据元组可能会存储有多种元素。如把高考成绩看作一个数据,其中含有高考总分、语文、英语、数学、理综成绩。在给考生排序时,当高考总分相同,比较语文成绩,语文成绩相同比较数学成绩,以此类推。在这个例子就体现了稳定性,具有相同关键字的记录在排序后的相对位置不变

*在这三种简单排序算法中

直接插入、冒泡排序:相邻两个元素比较和交换
简单选择排序:允许跨元素计较和交换

!举例说明:(将考生按成绩正序排列)
学生A,总分600分,语文110分
学生B,总分600分,语文90分
学生C,总分560分,语文100分
允许跨元素比较:
学生A和B比总分相同,不交换
学生A和学生C比较,交换(跨元素比较)此时排名为CBA:
学生C,总分560分,语文100分
学生B,总分600分,语文90分
学生A,总分600分,语文110分
学生B和A比较成绩相同不交换

经过排序结果如果变成:
学生C,总分560分,语文100分
学生B,总分600分,语文90分
学生A,总分600分,语文110分
(虽然学生A\B总分相同,但A、B的相对位置发生了变化,并且改变了语文成绩原来的相对位置,这就说明在这个过程中出现了稳定性问题)

链接: link【简单插入排序算法及对split()方法的理解和使用 - CSDN App】
链接: link【简单选择排序算法 - CSDN App】
链接: link【冒泡排序算法 - CSDN App】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值