数据结构——快排与归并

   日期:2024-12-21    作者:u4kjw 移动:http://qyn41e.riyuangf.com/mobile/quote/8258.html


重要的事说三遍
学习!学习!学习
努力!努力!努力


快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止

快排中心思想代码演示

 

将区间按照基准值划分为左右两半部分的常见方式有

代码实现

 
 
 
 

代码实现

 
 
 

代码实现

 

快速排序递归代码

 
 

递归到小的子区间时,可以考虑使用插入排序
当数组递归到一定程度后,所进行排序的数据个数较小,在这个时候使用插入排序的效率反而会比继续快排递归的效率要高

代码实现

 

为了验证这种排序是否有优化效果,我们可以将两种排序进行比较

 
 
 
 

代码实现

 
 
  1. 快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序
  2. 时间复杂度:O(N*logN)
  3. 空间复杂度:O(logN)
  4. 稳定性:不稳定

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

代码实现

 
 
  1. 归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。2. 时间复杂度:O(N*logN)
  2. 空间复杂度:O(N)
  3. 稳定性:稳定


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号