排序算法总结之快速排序、归并排序、shell排序

快速排序:

快排效率高,时间复杂度最理想为 O(nlogn) ,最差时间为O(n^2),该算法不稳定。其主要思想如下:

快排是每次将序列第一个数当作一个参考值,分别将比参考值大的数放到参考值右侧,小于参考值的数放到参考值左边,将序列一分为二,对得到的两个数列再分别进行上述操作,直到排序完成。

实现过程:
这里写图片描述

快排程序:
这里写图片描述

归并(分治)排序:
归并排序实质上是对将序列拆分为有序序列,然后对有序序列进行合并,时间复杂度为O(nlogn),而且算法稳定。

实现过程:
这里写图片描述

程序代码:
这里写图片描述
这里写图片描述

shell排序:
shell排序实际上是再不停减少相互比较的两个数之间的距离(即增量)。如果前者大于后者则两个数交换,如果前者小于后者则不交换,直到增量减为1,从而达到排序的功能。因为该算法之间的交换不是相邻两个数之间的交换,所以该算法不稳定,时间复杂度为O(n^2).

实现过程:
这里写图片描述

实现程序:
这里写图片描述

检验程序:
这里写图片描述
这里写图片描述

上述三种排序都可以用该程序来验证,并检测他们排序所用时间的长短。每次会产生随即序列对其进行排序。由于排序速度较快,所以如要比较他们排序速度,应增加length的长度

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值