各种排序算法平常用得少,根本记不住怎么办 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rookiedev
V2EX    求职

各种排序算法平常用得少,根本记不住怎么办

  •  
  •   rookiedev 2018-08-27 11:20:32 +08:00 4892 次点击
    这是一个创建于 2615 天前的主题,其中的信息可能已经有所发展或是发生改变。

    排序算法这么多,可能这次看了也照着简单的实现了一下,当时是记住了也知道原理了,但过了一段时间不用又忘了,可是呢面试时面试官又会问这个,问到这个时就有点吞吞吐吐的说不上来,不知道大家对这个怎么处理的,每次准备找工作时去系统的复习一遍吗?

    15 条回复    2018-09-11 14:35:19 +08:00
    ghdgf56
        1
    ghdgf56  
       2018-08-27 11:51:29 +08:00
    对的,面试前刷一遍题不是必须的嘛?面试造火箭,嘴上不能怂了啊>_<
    SkyeX
        2
    SkyeX  
       2018-08-27 12:30:40 +08:00
    自己笔记记下来了,看一遍不需要多少时间哇。
    rookiedev
        3
    rookiedev  
    OP
       2018-08-27 14:10:03 +08:00
    @ghdgf56 好像有的还需要你手动实现呢,这个恐怕需要是真的懂了并且记住了才能实现出来呀
    rookiedev
        4
    rookiedev  
    OP
       2018-08-27 14:10:39 +08:00
    @SkyeX 看一遍不一定会呀
    mortonnex
        5
    mortonnex  
       2018-08-27 14:12:51 +08:00
    记住常用的几种就行了,比如堆排,快排,冒泡,归并

    主要是理解
    rabbbit
        6
    rabbbit  
       2018-08-27 14:20:59 +08:00
    kehr
        7
    kehr  
       2018-08-27 14:27:19 +08:00
    对几种排序算法归归类,重点记推导过程,编码能力再多训练训练,练到“手随心动”的境界,写个排序还是很简单的。
    bobuick
        8
    bobuick  
       2018-08-27 21:25:03 +08:00
    这年头面试还在面排序?
    工作 3 年的,应该没什么可能会面排序了。怎么说也来个什么应用题啊
    rookiedev
        9
    rookiedev  
    OP
       2018-08-28 09:45:07 +08:00
    @bobuick 应用题?还望大佬不吝赐教
    af463419014
        10
    af463419014  
       2018-08-28 11:18:08 +08:00
    我认为手写的话记住快排和堆排就可以了,这两个效率高最常用,都是 n*logn
    区别是快排不稳定而且特殊业务容易出现极端情况 n^2
    堆排相对慢一丢丢,优点是稳定,是 jdk 中的默认排序方法

    量小的数据就冒泡,实现简单,30 秒写完

    其他排序无视
    coordinate
        11
    coordinate  
       2018-08-28 12:04:28 +08:00
    @af463419014 哪个版本的 jdk 使用堆排序的?我记得好像使用’多路快排加插入排序优化‘这种套路比较多。
    bobuick
        12
    bobuick  
       2018-08-28 12:06:10 +08:00
    @rookiedev 是说各类没有明说写排序的,类似一些问题可能用队列结构处理,一些问题回溯法,DP 问题难度略高一般要求能说明思路就差不多了。
    基本都以能说清思路为主,毕竟非 FLAG
    af463419014
        13
    af463419014  
       2018-08-28 12:35:10 +08:00
    @coordinate 抱歉记错了,应该是归并排序
    归并才是在 nlogn 下的稳定排序,堆排不稳定

    附上 Arrays.sort 方法
    默认使用 ComparableTimSort,一种归并排序的优化方案,混合了插入排序和其他优化功能
    也可以选择使用普通的归并排序

    luohuanlh
        14
    luohuanlh  
       2018-08-28 22:40:37 +08:00
    厉害了。
    cheesykris
        15
    cheesykris  
       2018-09-11 14:35:19 +08:00
    @af463419014 兄弟在哪高就
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2600 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 01:39 PVG 09:39 LAX 18:39 JFK 21:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86