在高级语言中练习算法和数据结构是不是最理想的?

时间:2013-02-06 12:44:44

标签: algorithm data-structures

我买了一份Cracking the Coding Interview,想要参加练习。我精通Python和Clojure,并想知道它们是否适合这个目的。如果我严格限制使用我创建的列表和类(或记录),我仍然可以在学习(内存管理之外)方面获得全部好处,或者我应该回到C / Java(我还没有'多年来都接触过?)

3 个答案:

答案 0 :(得分:4)

了解如何实现以及何时使用哪种算法和数据结构是任何语言的重要技能,并且大多数算法都可以在所有主流语言中实现。

关于它们的要点是程序的可扩展性,即随着输入增长而优雅的性能下降。这比从切换到低级编程语言所获得的常数因子加速要重要得多。

答案 1 :(得分:0)

如果您正在编写一个具有真实性能要求的真实程序,那么您可以获得使用C而不是Python编写它的优势。但是,您主要对要使用的算法感兴趣。几乎所有算法都可以用任何语言实现,因此使用哪种语言无关紧要。如果您擅长Python或Clojure,请使用它们。

编辑:无法在任何所有语言中实现的“算法”示例为Duff's device

答案 2 :(得分:0)

我认为任何通用语言都适用于数据结构。

然而,就像在Python中一样,很多数据结构已经成为语言的一部分。当然你可以添加数据结构,但已经实现了很多,因此不需要再次进行(除非你想更好地了解内部结构)。

也许有用的是认为深入了解数据结构是有用的(意思是:Python提供的是否足够,或者仅仅是知识收集的问题)。