常用sort算法比较

  Search和Sort是最基础的算法,基础但重要!

  Search的话,binary search最简单实用。

  Sort,上面是常用sort对比,看图,其实也没啥可说的了。

  注:1、bubble、selection和insert sort统称为简单排序,优点是程序相对简单、好写,但时间复杂度较差O(N^2);

      2、稳定排序(排序时,相同元素不调换位置):bubble、insert、merge和radix sort是稳定的;不稳定是因为元素调换位置时的间隔大于1(选择排序和希尔排序可以较明显看出);

  3、Shell sort基于insert sort,其时间复杂度由其程序中的递减间隔序列决定,最好也是O(N^2);heap sort基于selection sort,看起来其时间复杂度还不错,但是实际中和快速排序哪个更快,还得看情况;

   4、quick search,可以称之为网红排序。数据量较大时可用,但数据量较小时不如用插入排序。步骤:选主元—划分子集—递归分治,其中选主元可以用不同方法如:直接取左|右端元素、Median3等方法;

   5、merge sort除了要用额外空间O(N)外,都挺不错;

6、radix sort基于bucket sort,只是按基数去选择bucket,在某些情况下,其可以达到线性时间复杂度;

7、search 和 sort除了在要用的时候灵活使用外,重要的就是其时间、空间复杂度、稳定性、使用(情况)条件等。某些情况下(如面试),这些算法(套路)及其特点(白纸上)写到、背到滚挂烂熟,会是一个漂亮的开始……

  编程=算法+数据结构,编程就像做菜,数据结构是食材,算法是食谱,想把菜做好,备上好食材、好食谱,然后练吧。

  面试时,考官有可能让现场在黑板上写程序,边写边和考官讨论效果较好。但前提是得准备好,提前疯狂在白纸上和PC环境(leetcode啥的)上刷题是最直接的方法。

  恩……想必这些大家都知道,可以,就差行动了……

  本渣要去学习,88……

GitHub: https://github.com/666DZY666/Algorithm-and-Data-Structure

公众号:https://mp.weixin.qq.com/s/TPHLkR-NmUBURTIhMiSs2w

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值