中国最大的教育招生门户 加入收藏 | 设为首页 | 联系站长 | 中国招生信息网
当前位置:中国招生信息网 >> 就业信息 >> 就业指南 >> 程序员 >> 浏览文章
一位大四程序员的面试经历和体会 作者:cctvzsw 来源:佚名 文章点击数:


<p><strong>&nbsp;&nbsp; 1.面试经过</strong> <br /> <br /> &nbsp;&nbsp;&nbsp; 大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法我差不多也 达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的! <br /> <br /> &nbsp;&nbsp;&nbsp; 21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后 ,他给我出了一道编程题目,题目是这样的: <br /> <br /> &nbsp;&nbsp;&nbsp; (由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成&hellip;&hellip;(乱码) <br /> <br /> &nbsp;&nbsp;&nbsp; 1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n <br /> 哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来! <br /> 于是很快我给出我的解法: <br /> <br /> long fn(long n) <br /> { <br /> long temp=0; <br /> int i,flag=1; <br /> if(n&lt;=0) <br /> { <br /> printf(&quot;error: n must &gt; 0); <br /> exit(1); <br /> } <br /> for(i=1;i&lt;=n;i++) <br /> { <br /> temp=temp+flag*i; <br /> flag=(-1)*flag; <br /> } <br /> return temp; <br /> } <br /> <br /> &nbsp;&nbsp;&nbsp; 搞定!当我用期待的目光看着面试官的时候,他微笑着跟我说,执行结果肯定是没有问题! 但当n很大的时候我这个程序执行效率很低,在嵌入式系统的开发中,程序的运行效率很重要 ,能让CPU少执行一条指令都是好的,他让我看看这个程序还有什么可以修改的地方,把程序 优化一下!听了这些话,我的心情当时变的有点沉重,没想到他的要求很严格,之后我对程序 进行了严格的分析,给出了改进了的方案! <br /> <br /> long fn(long n) <br /> { <br /> long temp=0; <br /> int j=1,i=1,flag=1; <br /> if(n&lt;=0) <br /> { <br /> printf(&quot;error: n must &gt; 0); <br /> exit(1); <br /> } <br /> while(j&lt;=n) <br /> { <br /> temp=temp+i; <br /> i=-i; <br /> i&gt;0?i++:i--; <br /> j++; <br /> } <br /> return temp; <br /> } <br /> <br /> &nbsp;&nbsp;&nbsp; 虽然我不敢保证我这个算法是最优的,但是比起上一个程序,我将所有涉及到乘法指令的语 句改为执行加法指令,既达到要题目的要求而且运算时间上缩短了很多!而代价仅仅是增加了 一个整型变量!但是我现在的信心已经受了一点打击,我将信将疑的看者面试官,他还是微笑 着跟我说:&ldquo;不错,这个程序确实在效率上有了很大的提高!&rdquo;我心里一阵暗喜!但他接着说这个程序仍然不能达到他的要求,要我给出更优的方案!天啊!还有优化!我当时真的有点崩 溃了,想了一会后,我请求他给出他的方案!然后他很爽快的给出了他的程序! <br /> <br /> long fn(long n) <br /> { <br /> if(n&lt;=0) <br /> { <br /> printf(&quot;error: n must &gt; 0); <br /> exit(1); <br /> } <br /> if(0==n%2) <br /> return (n/2)*(-1); <br /> else <br /> return (n/2)*(-1)+n; <br /> } <br /> <br /> &nbsp;&nbsp;&nbsp; 搞笑,当时我目瞪口呆,没想到他是这个意思,这么简单的代码我真的不会写吗,但是我为 什么没有往那方面上想呢!他说的没有错,在n很大很大的时候这三个程序运行时间的差别简 直是天壤之别!当我刚想开口说点什么的时候,他却先开口了:&ldquo;不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!&rdquo;多么精辟的语言,我已经不想再说 什么了!接着是第二个问题: <span>


人支持
下一篇:薪酬扫描
发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
设为首页 | 加入收藏 | 关于本站 | 联系站长 | 友情链接 | 版权申明 | 网站留言

Copyright 2011 Powered by cctvzsw.com All Rights Reserved
服务QQ:897220906 690341441 E-Mail:897220906@qq.com
本站资源来自互联网 如果侵犯您的权利 请通知我们 我们会尽快删除
京ICP备09038251号