数据结构-排序算法总结

代码全部C语言实现,后续有机会补上
1.冒泡排序:思想是两两比较,每次选出一个相对最大数,直至所有数都完成排序。算法复杂度O(n^2)。
优点:稳定,由于遍历比较所有未排数据所以可以在排序过程加入很多逻辑操作,优化变种空间大。
缺点:低效,大量的比较和交换。

2.选择排序:遍历所以待排序数据中最小的一个与代排数据第一个交换位置。算法复杂度O(n^2)
优点:数据最恶劣交换次数已知(n-1)次,较之冒泡排序少了很多交换,不稳定,缺点跟冒泡排序一样低效。

3.快速排序:随机从数组中选择一个数作为参考,然后将剩余数据按比之大小分成左右两部分,递归执行以上操作直至数组个数为1,此时数组排序完成。。算法复杂度为O(n*log(n))。
优点:速度快,数据交换少,算法复杂度降低,序列越乱效率越高,有序时退化为冒泡排序
缺点:不稳定
对于基准的选择:随机选取或者
优化:当数据分割到一定程度小以后使用插排。

4.插入排序:将待排序数从后往前与已排序数组比较,放到合适位置。
优点:当待排序数整体有序时,快速排序效率较高,反之则是其缺点,稳定。不适合处理大规模数据

5.哈希排序:插入排序的改良版,将待排序数按规则拆成多个子数组分别使用插入排序
优点: 快, 缺点:不稳定

6.归并排序:将待排序数组分成左右两个待排序区,递归拆分数组直至待排序数组个数为1,此时可认为两个数组已拍好序,新建一个数组将俩已拍好序数组中的数依次载入新数组中便可以了。算法复杂度O(n*log(n))。
优点是便于大数据分布式处理,稳定
在这里插入图片描述

参考:
https://www.zhihu.com/collection/602700944
https://blog.csdn.net/qq_39207948/article/details/80006224?utm_source=app
https://blog.csdn.net/m0_37962600/article/details/81475585
https://blog.csdn.net/u010817474/article/details/48435365

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值