生活资讯
快速排序详解:原理、优化与归并比较
2025-01-03 10:47  浏览:92

快速排序从程式上看起来和归并排序特别像,都采取了递归分治的思想,将数据逐步分解。快排首先在序列中选定某一个枢轴(pivot,然后将除枢轴位置的数据与枢轴数据比较,大于的放在右边,小于的放在左边,然后分两边再次递归,直到递归数据个数趋为1,这样数据就排好序了。

 
 
  1. 稳定性:快排不是稳定的排序算法,快排的插入与交换取决于枢轴点的选取,比如说8,6,8,1,5,3这个数组,在第一轮的分区中第一个8就会排到第二个8后面,所以快排不是稳定的排序算法

2.空间复杂度:单单通过算法就能看出并没有像归并那样额外申请内存,仅仅只需要在同个数组内完成,因此为O(1),属于原地排序算法

3.时间复杂度:因为采用了与归并类似的思想,假设数组每次都能完美拆分为两个对半的,这样的时间复杂度即为O(nlogN),但是枢轴值的选取倘若很极端,极端到每次的选择要么为最大值,要么为最小值,就相当于冒泡排序那样,就会退化成为O(n²

  1. 在上面的时间复杂度分析中,可以看出快排的时间复杂度并不稳定,造成这个结果的原因就是主要因为枢轴值的选择,因此对枢轴值选择的优化颇为重要,比如说三数取中,九数取中,尽量扩大采样数据的范围,这样才能优化枢轴值的选择
  2. 当我们在递归到某个深度的时候,数据规模较小,此时插入排序的性能可能比快排的性能还要好,则可以设置一个阈值,切换排序算法的实现,这样也能提高效率
  1. 归并直接首先直接二分分区,落井下石到最底层才开始执行合并排序的操作归并由下到上
    快排首先会确定位置再分区,然后递归,随着中间位置点的越分越多,数据的序列性表现的越明显,快排由上到下

  2. 归并的空间复杂度比快排高,尤其在大量数据面前,归并的内存占用相当可怕

  3. 快排的时间复杂度并不如归并的稳定

  4.     以上就是本篇文章【快速排序详解:原理、优化与归并比较】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/tnews/4965.html
         栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
耐水弹力海棉
产品属性用途区域产品包装、耐水 防潮密度0.02-0.18g/cm3原产地中国,江苏,常州品牌D-Foam形状可根据客户提供图纸生产颜色可根
耐水高强度海棉
产品属性用途区域产品包装、耐水 防潮密度0.02-0.18g/cm3原产地中国,江苏,常州品牌D-Foam形状可根据客户提供图纸生产颜色可根
防潮耐水EVA材料
产品属性用途区域产品包装、耐水 防潮密度0.02-0.18g/cm3原产地中国,江苏,常州品牌D-Foam形状可根据客户提供图纸生产颜色可根
耐油耐水海绵
产品属性用途区域产品包装、耐水 防潮密度0.02-0.18g/cm3原产地中国,江苏,常州品牌D-Foam形状可根据客户提供图纸生产颜色可根
供应耐水海绵
产品属性用途区域产品包装、耐水 防潮密度0.02-0.18g/cm3原产地中国,江苏,常州品牌D-Foam形状可根据客户提供图纸生产颜色可根
看了OPPO、vivo的新旗舰手机样张后,决定还是继续用微单吧
最近,OPPO、vivo都给出了自家旗舰手机的样张,大战一触即发。记得手机圈上一次这么火爆,还是小米15 Ultra的时候。具体来说,当
微信借钱不求人,6个步骤轻松搞定...手机微信怎么借钱「微信借钱不求人,6个步骤轻松搞定...」
微信,作为中国人日常生活中不可或缺的社交软件,不仅满足了人们的沟通需求,还悄然融入了金融服务,其中就包括微信借钱功能。无
小米8系列手机,有它才叫防摔保护手机爆屏「小米8系列手机,有它才叫防摔保护」
手机已成为日常生活必备品,而且小米8陶瓷后盖摔不得,维修的费用都赶上半个手机的钱了,选什么手机壳呢,贼难拆的磨砂硬壳?一
米其林指南开启江苏篇章,“江苏味”如何与世界“双向奔赴”
米其林指南作为餐饮界的“奥斯卡”,关注度高。2024年7月,米其林指南重调评价体系,转为省份榜单评选,并官宣江苏省、福建省成
重磅发布!5.4%!
4月16日,国家统计局发布的数据显示,一季度,在以习近平同志为核心的党中央坚强领导下,各地区各部门认真贯彻落实党中央、国务