在C中学习算法的最佳位置或链接是什么?通过调查问题,您如何知道何时何地使用算法实现?
解决方法
算法不一定与特定语言相关联,只是为了澄清,因此只要您能理解数据结构/算法的概念,任何算法书都会很有效.
也就是说,这似乎是一个不错的选择:Algorithms in C.我的架子上有C++ equivalent.
还有一本看起来像语言不可知的书(如果我错了,请纠正我),叫做Data Structures & Algorithm’s,虽然我听说它有点陈旧,所以你会错过更近期的结构.
不要忘记互联网上有大量的信息available to you.然而,书籍通常更适合这些类型的东西.这是因为互联网资源往往只关注一件事.例如,当我们说List有O(1)[常数时间]删除时,你需要先了解Big-O notation是什么,然后才能理解它意味着什么.
一本书将以正确的顺序涵盖这些内容,但互联网资源将专注于Big-O表示法或数据结构,但通常不会轻易连接这两者.
在使用它时,当涉及到您将对数据执行的操作时,您将主要进行连接.
例如,如果您只需要有序元素,则可能需要vector(数组),但如果您需要有序元素并从任何地方删除(但可以牺牲随机访问),那么list会更合适,因为它是恒定的 – 时间去除.