排序算法这么多,可能这次看了也照着简单的实现了一下,当时是记住了也知道原理了,但过了一段时间不用又忘了,可是呢面试时面试官又会问这个,问到这个时就有点吞吞吐吐的说不上来,不知道大家对这个怎么处理的,每次准备找工作时去系统的复习一遍吗?
1
ghdgf56 2018-08-27 11:51:29 +08:00
对的,面试前刷一遍题不是必须的嘛?面试造火箭,嘴上不能怂了啊>_<
|
2
SkyeX 2018-08-27 12:30:40 +08:00
自己笔记记下来了,看一遍不需要多少时间哇。
|
5
mortonnex 2018-08-27 14:12:51 +08:00
记住常用的几种就行了,比如堆排,快排,冒泡,归并
主要是理解 |
6
rabbbit 2018-08-27 14:20:59 +08:00
|
7
kehr 2018-08-27 14:27:19 +08:00
对几种排序算法归归类,重点记推导过程,编码能力再多训练训练,练到“手随心动”的境界,写个排序还是很简单的。
|
8
bobuick 2018-08-27 21:25:03 +08:00
这年头面试还在面排序?
工作 3 年的,应该没什么可能会面排序了。怎么说也来个什么应用题啊 |
10
af463419014 2018-08-28 11:18:08 +08:00
我认为手写的话记住快排和堆排就可以了,这两个效率高最常用,都是 n*logn
区别是快排不稳定而且特殊业务容易出现极端情况 n^2 堆排相对慢一丢丢,优点是稳定,是 jdk 中的默认排序方法 量小的数据就冒泡,实现简单,30 秒写完 其他排序无视 |
11
coordinate 2018-08-28 12:04:28 +08:00
@af463419014 哪个版本的 jdk 使用堆排序的?我记得好像使用’多路快排加插入排序优化‘这种套路比较多。
|
12
bobuick 2018-08-28 12:06:10 +08:00
@rookiedev 是说各类没有明说写排序的,类似一些问题可能用队列结构处理,一些问题回溯法,DP 问题难度略高一般要求能说明思路就差不多了。
基本都以能说清思路为主,毕竟非 FLAG |
13
af463419014 2018-08-28 12:35:10 +08:00
@coordinate 抱歉记错了,应该是归并排序
归并才是在 nlogn 下的稳定排序,堆排不稳定 附上 Arrays.sort 方法 默认使用 ComparableTimSort,一种归并排序的优化方案,混合了插入排序和其他优化功能 也可以选择使用普通的归并排序 |
14
luohuanlh 2018-08-28 22:40:37 +08:00
厉害了。
|
15
cheesykris 2018-09-11 14:35:19 +08:00
@af463419014 兄弟在哪高就
|