C中的算法

6 c algorithm

在C中学习算法的最佳位置或链接是什么?通过调查问题,您如何知道何时何地使用算法实现?

GMa*_*ckG 13

算法不一定与特定语言相关联,只是为了澄清,因此只要您能理解数据结构/算法的概念,任何算法书都会很有效.

也就是说,这似乎是一个不错的选择:C中的算法.我的架子上有C++等价物.

还有一本书似乎语言不可知(如果我错了,请纠正我)称为数据结构和算法,虽然我听说它有点过时,所以你会错过更近期的结构.

不要忘记互联网上有大量的信息可供您使用.然而,书籍通常更适合这些类型的东西.这是因为互联网资源往往只关注一件事.例如,在我们说List有O(1)[常数时间]删除时,你需要先了解Big-O符号是什么才能理解它的含义.

一本书将以正确的顺序涵盖这些内容,但互联网资源将专注于Big-O表示法或数据结构,但通常不会轻易连接这两者.


在使用它时,当涉及到您将对数据执行的操作时,您将主要进行连接.

例如,如果你只需要有序元素,你可能想要一个向量(数组),但是如果你需要有序元素并从任何地方删除(但可以牺牲随机访问),那么列表会更合适,因为它是恒定的 -时间去除.


小智 5

有关在C中实现常用算法的合理(虽然远非完美)一书,请尝试使用C中的Sedgewick 算法.请注意,对于任何技术主题,纸质书籍可能远远优于任何Web资源.

至于如何知道何时使用特定的算法,我担心这是经验.


Con*_*lls 5

对于algortihms文本,Cormen,Leiserson和Rivest的"算法导论"是一个良好的开端.伪代码实现很容易转换为C.两个Web资源,包含许多关于算法和示例实现的文档的链接:


Ste*_*owe 4

Sedgewick 的Algorithms in C是开始研究的好地方。一旦您熟悉了哪些算法可用以及每种算法的性能特征是什么,您将能够了解每种算法的用途。