常用排序(稳定性、时间/空间复杂度)

本文探讨了排序算法的稳定性,并分析了冒泡、快速、选择、插入、堆、归并、基数和希尔排序的时间/空间复杂度。稳定排序算法包括冒泡、插入、归并和基数排序,而不稳定的是快速、选择、堆和希尔排序。快速排序通常最快,但空间复杂度较高,而插入排序和堆排序分别适用于小规模和大规模数据。
摘要由CSDN通过智能技术生成

一、稳定性

排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。
稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。

以上三种排序具体原理及代码实现:常用排序(冒泡、快速、选择)

1、冒泡排序(稳定)
冒泡排序是比较相邻两个元素的值的大小,当相邻元素的值相等时,这两个元素不会交换位置,因此冒泡排序不会改变相等元素的前后位置,所以是稳定的。

2、快速排序(不稳定)
快速排序需要指定一个基准数,两个指针i,j,当i和j相遇时就会交换此时i,j所共同指向的那个位置的元素A[i](A[j])与基准数,这时就很容易发生相等元素前后位置的调换了。比如,7,3,3,4,3,8,9这个序列,当一次排序最后,就会调换中间3于基准数7的位置,所以不稳定。

3、选择排序(不稳定)
选择排序是每次选择一个最大的元素放在数组的倒数第i个位置上,所以当有相等的元素时,就会造成前后顺序改变的情况,因此是选择排序是不稳定的。

以下三种排序具体原理及代码实现:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值