希望是有中文版的。
1
Wockee 2015-06-05 23:28:56 +08:00 1
数据结构与算法分析:C语言描述(原书第2版)
|
2
onemoo 2015-06-06 10:28:35 +08:00
同时还有一本《数据结构与算法分析 : C++描述》
|
3
lijianying10 2015-06-06 10:46:17 +08:00
楼上说的的确非常有用,但是,大概看眼也就行了。
现在研究以前人写的算法给工作打底还可以,但是Intel CPU调优手册还是要看的。不然给你XeonCPU你都不会用。 http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html MKL不说啥了 https://software.intel.com/en-us/articles/intel-math-kernel-library-documentation IPP不说啥了 https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation 也许你提这个问题说明您是个初学者,但是初学者能站在什么样的高度去学习是很重要的。 |
4
FrankHB 2015-06-06 14:22:32 +08:00
@lijianying10 为什么关于C/C++算法,就需要参考侧重性能的具体实现呢?不管是不是初学者,如果根本没机会erformance tuning,研究这些材料投入和产出是不是会坑读者呢。即便是有这些需要,看这些之前,是不是先了解一些常见编译器选项和意义更实用呢?
|
5
lijianying10 2015-06-06 16:20:20 +08:00 2
@FrankHB
我在3L的回答只代表我个人的观点,不代表这就一定是正确的观点。 在1L 2L 推荐的数目中我感觉看看就行:了解基础算法大概有什么是怎么搞的。最多动动手就好。 在IPP中有非常多Intel调优好的基础算法,需要看看了解一下,在开发中的确会用到的。 在MKL中,很多数学算法都有实现,看看Manual有点印象工作会用到的。 以上两个库在实际工作中:对于解码器,语音处理,信号处理 等都有调优好的直接拿来就用的工具放在那里。 Intel Optimization Manual中,是介绍如何良好的使用Intel编译器来编写高性能程序的,当然也包括编译器Flag的调试啦。 回答您的问题: 1. 在实战中如果拿着数据结构的数来挑战一个具体的高性能的底层应用不是不可以,可能比较费劲。 2. Performance tuning我认为是数据结构与算法分析的核心内容。 3. 投入这些精力看材料之后会对当前Intel为主导的服务器结构有更深入的了解。产出的程序当然会好很多啦。 4. 编译器使用是第一份材料中的重点内容。 @durami 其实这三个Manual并不是什么超级难的Manual Intel 的文档质量是非常高的。 我也希望楼主能多从并行的角度来了解算法写算法。 毕竟传统的书籍都是串行算法,不适用当前的云时代了。 最重要的,我是不建议啃书本的,我推荐的材料只需要Scan即可, 最后希望能帮到大家。 |
6
snnn 2015-06-07 12:48:16 +08:00
我觉得数据结构与算法分析的核心内容是:分析这个问题是否有解、解是否唯一、这个算法是正确的,算法复杂度。
|
7
FrankHB 2015-06-08 17:40:37 +08:00
@lijianying10 我对先前内容的正确性本身没有异议。但我不同意“毕竟传统的书籍都是串行算法,不适用当前的云时代了”这个说法——即便算法本身用不上,算法分析的一般方法、和实现结合的许多惯用法仍然都是相同或类似而可以参照的;而专门讲解并行算法的文献大多不会有耐心复述一遍这些较为经典的内容。
我同意你先前的回答可能会对不少人有帮助,不过从问题来看(正如你所说的“也许你提这个问题说明您是个初学者”),恐怕题主难以利用这些资源。 然而面向非初学者,问题涵盖的范围可以很大,方向也有很多,也并非一定侧重高性能计算。 所以我建议先缩小一下范围(或许可以让题主明确一下感兴趣的问题领域),以便更能有针对性。 |