文章插图
什么是排序算法的稳定性?
稳定: 如果 a = b,a原本在b的前面,排序之后,a仍然在b的前面,那么这个排序算法就是稳定的 。反之,就是不稳定的排序算法 。
稳定的排序算法有:
一.快速排序思想:选取中间的数为基准值,然后将比它小的放在左边,比它大的放在右边,然后将左右两边的数组进行同样的操作,使用递归的思想 。
注意三点:
1.要判断递归的边界条件,当数组的长度 <= 1 时,跳出递归;
2.最后进行数组合并时,需要将基准值也合并进去;
3.splice是对原数组进行操作,返回的是要删除的数组;
文章插图
二.冒泡排序冒泡排序的原理:
比方说有五个数字54321,要按从小到大排列;
首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来,变成43215;
所以,一层循环的效果就是挑出最大的一个数字5,冒泡到最后面 。接着相似方法挑出第二大,第三大的数字等 。那么一层循环就不够用,必须再嵌套一层 。
像这个例子,五个数字,起码要进行四轮循环才行 。至于为什么要this.length - i,是因为第一次比较五个数字,第二个只要比较前四个就行了,第五个肯定是最大的了 。
文章插图
改进后的冒泡排序:
改进的思路: 将每趟排序中最后一次进行交换的位置pos记录下来,下次排序只要扫描到pos即可 。
文章插图
三.选择排序最直观的排序算法
依次找出第一大、 第二大、 第三大...依次放在数组中
文章插图
欢迎关注 。
【什么是排序算法的稳定性?】
推荐阅读
- 梦到自己穿绿色衣服 梦到自己穿绿色衣服是什么意思
- 男生什么面膜最好用排行榜 最好用的10大男士面膜
- 梦见炉子里有火是什么意思 梦见炉子里有火苗
- Android:这是一份全面 & 详细的Kotlin入门学习指南
- MySQL 读写分离环境搭建
- 名壶赏析,供春壶
- 如何甄选令自己心仪的茶具
- 什么是saas?
- 一层一层剥掉你的衣服 为什么胸罩扔的时候要剪掉
- 名创优品联名是真的假的 创4团名叫INTO1是真的吗