看《算法导论》需要多好的数学基础?
(-06-07 05:10:34)
标签:
基础
算法
数学
杂谈
看《算法导论》需要多好的数学基础?原本打算找到一份编码的工作,先深入了解unix的api,过两年有空再慢慢看算法,现在看来似乎太不现实了。
投了一个月的简历,就得到一次笔试和面试的机会,不过是测试的,本来就对测试不太敢兴趣,被面试官以“别浪费大家的时间”打发了,后来想想他说的确实没错……
网上看很多笔试、面试题,很多都是跟算法有关的。我大学数学就没学好,算法更是一窍不通。急功近利的拿起《算法导论》,虽然从来都不喜欢在基础没打好的情况下好高骛远,不过现在已经不在学校了,恐怕没太多时间了。
大学四门数学:
《线性代数》:大规模的矩阵运算? 似乎在图形学方面用的比较多?先搁下
《高等数学》:学的时候不知道微积分是干什么用的,后来用的时候才知道……在算法方面直接用到微积分的情况应该不多吧?
《概率论和随机过程》:我知道这在算法上肯定能用到,不过需要《高等数学》的基础,我不知道是不是有时间和耐心看完这两门数学
《离散数学》:我听说这是计算机科学的核心课程
在没什么数学基础的情况下,看《算法导论》有多难?还是遇到实在看不懂的就先跳过
也许最后还是不得不拿起数学书,以上四门各位有什么好的推荐不?以前学校的教材,自学是很难看懂的,全扔了……
最后,下面一大段不是重点,我主要关心的是上面的,不过顺便提出来:
关于用c编写泛型算法的问题,我正准备把书上的算法变成代码。
《算法导论》上第一个算法是插入排序,对一个数组进行排序
1、假如是一个整型数组,可能会这么声明:
int *insert_sort (int *array, int len);
很久以来都是这么干的,遇到另一种数据类型,就改代码,这样太麻烦了
2、于是希望能处理各种数据类型,使用函数指针来比较:
typedef int (*compare_func) (void *elem1, void *elem2);
void *insert_sort (void *array, int elemsize, int len, compare_func
comp_f);
不过,我觉得这代码太恶心了,实现起来估计也不怎么好看
3、使用c++
template
elemtype *insert_sort (elemtype *array, int len);
不知道是心理原因还是什么http://www.keyuzho
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。