抱怨一下非常棒的大学课程

2014-10-13 22:34:14 +08:00
 kcworms

大二终于多了一些和专业相关的课,结果却是这样的。

数据结构课,非常好奇那个老师怎么和计算机扯上关系的。动不动就拿办事、领导之类的举例子,浑身也散发着这种讨厌气味。
某一次他解答那本教材上的课后习题,下面是原题。
试分析时间复杂度:

int s1(int n) {
int p=1, s=0, i;
for (i=1; i<=n; i++) {
p *= i;
s += p;
}
return s;
}

他脑补成O(n!),原来那个乘法还可以拆成加法,我真是大开眼界。
我写的O(n),这是几个星期前的事。现在这个奇葩老师又搞了点新花样出来,我就把这个挖出来解气。

测试程序和结果是这样的。计时是直接看code::blocks的runner的信息

int main () {
int i;
for (i=0; i<10000000; i++)
s1(40);
return 0;
}
// n, time
// 10, 0.405
// 20, 0.768
// 30, 1.124
// 40, 1.481
// 100, 3.768

比较接近32bit的int上限的数也测试了一下,结果一样。试着搜索了一下,MUL操作好像有专用的电路来高速执行。

完全不考虑实际案例,整几个一点意义都没有的垃圾习题(除了以判断素数算法为样本的那个以外),真有中国大学课本的风格。更棒的是还有奇葩老师去钻这种习题的牛角尖

268 次点击
所在节点    自言自语
2 条回复
kcworms
2014-11-09 22:39:03 +08:00
string有时可以当作sequence,array的同义词。汉语翻译里的“字符串”指text string。但是string又常常指text string。于是某些人把序列也叫“字符串”
kcworms
2014-11-16 22:32:50 +08:00
3M的1100耳塞一个能用几天呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/138730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX