那么数据结构和算法课程毕竟真的很有用吗?

non*_*tor 3 language-agnostic

我记得当我在DSA时,我就像wtf O(n),想知道除了在研究生学校或者你不是像布洛赫这样的博士之外我会在哪里使用它.在某种程度上用它会在业务分析中弹出,所以我想知道你们什么时候必须调用你的Big O技能来看看如何编写算法,你使用哪种数据结构来适应或者是否必须实际创建一个新的ds(就像你自己实现的splay tree或trie).

Bob*_*man 12

理解数据结构是我参与的许多项目的基础,超过了十分钟的歌曲,当在面试情况下被问到这样的问题时.

当然,具有各种集合类的现代环境可以轻松地存储和访问大量数据,但了解特定数据结构可以最好地解决特定问题,这可以节省大量时间.而"节省时间"我指的是"工作与不工作之间的区别".


Dea*_*n J 6

老实说,能够回答这些问题是我在面试中认真对待受访者的最大标准.了解基本数据结构如何工作,基本的O(n)分析和一些光理论对于能够成功编写大型应用程序至关重要.

这在面试中很重要,因为它在工作中很重要.我过去曾与自己教过的技术人员一起工作,没有参加数据结构课程或阅读数据结构书,他们的代码偶尔会以他们应该看到的方式变坏.

如果你不知道与n log n相比n2的运行速度会慢,那么你还需要学习更多内容.

至于后半部分的数据结构课程,它通常不适用于大多数技术工作,但如果你最终需要它,你会希望你得到更多的关注.


Pav*_*aev 6

Big-O表示法是描述特定库实现的算法时使用的基本符号之一.例如,我见过的关于STL的所有文档都描述了关于big-O的各种操作,所以你必须要理解O(1),O(log n)和O(n)之间的区别才能理解选择STL容器和算法的含义.MSDN也为.NET类执行此操作,IIRC Java文档为标准Java类执行此操作.所以,我会说知道符号几乎是理解大多数流行框架文档的必要条件.