百科问答小站 logo
百科问答小站 font logo



为什么 360 面试官说 Trie 树没用? 第1页

  

user avatar   ling-jian-94 网友的相关建议: 
      

说句实话,工程上来说,和hash比起来,trie就是没有用的东西。这个可以说很深刻地表现出了一个学生和一个软件工程师的思维差异。

你可能很清楚,hash类的算法都有可能因为碰撞而退化,而trie是稳定的复杂度,简直太招人喜欢了。

但是工程师99.9%的情况下都会用hash。因为,hash函数、map、set,都有内置库,所有语言都有。

这意味着一个功能用hash就是五行代码,甚至体现不出用了hash,而用trie,你要么先交一份trie开源库的分析选型比较报告来,要么自己撸一个,附带着先写一千行的单元测试用例,再跑个压测。万一将来换个语言,请从头再来。

是的,就是这么简单,工程师才不会考虑碰撞,他们甚至不关心rehash、hash实现这些细节,许多语言内置的hash实现已经考虑了防止恶意碰撞了,而随机碰撞,没有那么巧的事情。写出简单可用能快速上线的代码要更重要。

你看出来了,学术关心理论最优,工程关心实践最优。

你可能愤愤不平,为啥标准库不把trie加进去?那你有没有想过这些问题呢?

1. 如果字符串不是常见的英文小写字母,而是unicode呢?

2. 如果这些字符串超级长,甚至有傻子拿来了一千个文本文件,每个有100KB呢?

3. 字符串现在多得不能忍了,需要分布式处理,你要怎么设计一个分布式的trie(要记得trie的节点分布可能是高度不均衡的)?

所以,工程看重什么也是有道理的。

当然trie自然不是真的没用,它支持前缀匹配,支持范围查找,这些都有独特的应用,比如数据库里字符串类型的索引就经常实现为前缀树(另一种常见实现自然就是hash)。但说实话,不会有工程师认为这是两种可以相互竞争的技术。


user avatar   jsnbin 网友的相关建议: 
      

360拒你完全正确,这么说吧,在一个能力4分和一个能力5分的人里选择的话,公司会选有内部人介绍那个,如果两个人都没人介绍,选态度好的那个,如果两个人态度都好的话,选女的那个,如果两个人都是女的,选胸大的那个。

如果你能力是8分的话,不管你态度好不好,有多少缺点,还是会选你,因为要把一个4,5分的培养到8分,成本太高。

至于你的问题,上百度搜一下就知道,你的方法在数据量大的时候工程上(至于学术上,无讨论必要)有多不靠谱了。从你能有自己的看法来看,在毕业生中应该是优秀的,能力评估5分左右,态度好的话被录取可能性比较大。

至于360面试你的人说你的方法不对,原因是他经验不足,应该夸你一顿,然后叫你等通知的




  

相关话题

  c中struct 为什么可以在数据结构这样用? 
  刷完算法导论和leetcode,能找到什么水平的工作? 
  利用无理数压缩数据是否可行? 
  到了 2022 年,人工智能有哪些真正可落地的应用? 
  你遇见过什么当时很有潜力但是最终没有流行的深度学习算法? 
  如何看待王思聪开始第二波抽奖,这轮抽奖结果的性别比是否会发生明显的变化? 
  有没有可能让计算机去理解代码,从而写代码? 
  在电子游戏中99%的暴击率、1%的爆伤和1%的暴击率、99%的爆伤,两者谁带来的收益更高? 
  能解释下怎么从这个有向图生成如图的集合链?(数字电路并行全入度拓扑排序优化算法)? 
  从算法的角度来看,Elsagate 事件暴露出了「自动推荐」的哪些问题,该如何规避? 

前一个讨论
经济学有逻辑基础吗?
下一个讨论
司马懿的晋朝跟春秋的晋国有什么渊源吗?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利