【发布时间】:2012-02-22 23:04:35
【问题描述】:
在许多语言中,特别是对我而言,Java 和 C++,都有一个庞大的标准库。在这个库中实现了计算机科学、搜索、排序、散列等方面的许多经典问题。我的问题是,说实现自己的算法与简单地使用库的版本相比有什么好处吗?有没有什么特别的例子是这样的?
我之所以这么问,是因为在学校里大量的时间都花在了排序上,但是在我的实际代码中,当人们已经在 Java 和 C++ 中实现和优化了排序算法时,我发现没有理由利用这些知识。
编辑:我与我认识的一位教授详细讨论了这个问题,并发布了他的回复,有人能想出更多补充吗?
【问题讨论】:
-
这些库通常不带有非比较排序,公平地说,这并不经常有用,但是当它们出现时,它们几乎总是比任何排序都快得多在图书馆。
-
这类似于常见的“我为什么需要数学?”
-
在开发新事物之前先了解现有技术非常有用,实际上几乎是必要的。想象一下,一位从未研究过标志性建筑和重要建筑是如何设计的建筑师……扩展类比,一个人可能会出于某些目的采用现成的设计,并为另一种目的设计一些衍生的或新的东西。很难一概而论,但是如果不研究以前的作品,您将无法做到很多ab novo。此外,许多追求需要开发其他人尚未看到的东西。