算法入门第三课

算法入门第三课
题目一:
比较器的使用
1)比较器的实质就是重载比较运算符。
2)比较器可以很好的应用在特殊标准的排序上
3)比较器可以很好的应用在根据特殊标准排序的结构上

实现Comparator接口
重写compara()方法

题目二
桶排序思想下的排序
1)计数排序,词频统计(区间小适合)
2)基数排序(数据必须是十进制,最好是正数)
分析:
1)桶排序思想下的排序都是不基于比较的排序
2)时间复杂度为O(N),额外空间负载度O(M)
3)应用范围有限,需要样本的数据状况满足桶的划分

排序方式:
1)基于比较的排序(重要,范围广)
2)基于数据状况的(好处,时间复杂度好最好的程度O(N))

题目三:
排序算法的稳定性
排序算法的稳定性及其汇总
同样值的个体之间,如果不因为排序而改变相对次序,就是这个排序是有稳定性的;否则就没有。
不具备稳定性的排序:
选择排序、快速排序、堆排序
具备稳定性的排序:
冒泡排序、插入排序、归并排序、一切桶排序思想下的排序
目前没有找到时间复杂度0 (N*logN),额外空间复杂度0(1),又稳定的排序。

题目四:
常见的坑
1,归并排序的额外空间复杂度可以变成0(1),但是非常难,不需要掌握,有兴 趣可以搜“归并排序内部缓存法”
2, “原地归并排序”的帖子都是垃圾,会让归并排序的时间复杂度变成0 (N’ 2)3,快速排序可以做到稳定性问题,但是非常难,不需要掌握,可以搜 “01stable sort”
4,所有的改进都不重要,因为目前没有找到时间复杂度0 (N*logN),额外空间复 杂度0(1),又稳定的排序。
5,有一道题目,是奇数放在数组左边,偶数放在数组右边,还要求原始的相对 次序不变,碰到这个问题,可以怼面试官。

题目五:
工程上对排序的改进 (多种优势弄在一起)
1)充分利用O(N*logN)和O(N^2)排序各自的优势
2)稳定性的考虑

例如:
多少个数是适合那个方法就用那个排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值