<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    北大青鳥IT教育博客

     

    學(xué)編程的人不能不看的好文章

      做為一名大四的學(xué)生,我面試過不少的單位,有成功的也有失敗的,但是對我來說所有的失敗在某種意義上都是一種成功,特別是我下面寫的這些,寫這篇文章的時候,我已經(jīng)簽了南京的一家軟件公司,但是想起今年2月21日我面試蘇州臺灣的IT公司的經(jīng)歷聯(lián)想到我們現(xiàn)在學(xué)習(xí)編程的一些情況我真的深有感觸,這次面試使我深深的體會到了失敗但也收獲了很多。我要說的將分成三部分,1.是我面試的具體經(jīng)過2.是由面試想到的3.現(xiàn)今我應(yīng)該做的。

      當(dāng)然這些話很大程度上是我個人的意見,不可能完全得到大家的贊同,所以在某些觀點(diǎn)上如果哪位朋友覺得跟我的有很大出入,請不要介意,也不要對我攻擊,就當(dāng)我沒有說過,歡迎和我聯(lián)系共同探討這些問題!

    1.面試經(jīng)過

     

      大約在年前我接到了臺灣瑞晟(Realtek)蘇州公司的面試通知,通知我2月21日到蘇州工業(yè)園區(qū)面試,接到面試后的幾天我把一些專業(yè)課溫習(xí)了一遍,特別是C++和數(shù)據(jù)結(jié)構(gòu),由于大學(xué)幾年里,我一直專研這些方面,加上通過了高級程序員的考試,對于一些常用的算法我差不多也達(dá)到了爛熟于胸的地步,當(dāng)時的感覺是如果問了我這些方面的問題我應(yīng)該是沒有問題的!

      21日那天我被安排在4:30面試,由一位技術(shù)人員單獨(dú)給我面試,在問了一些簡單的問題之后他給我出了一道編程題目,題目是這樣的:

     

      (由于具體面試的題目比較煩瑣,我將其核心思想提取出來分解成了兩個獨(dú)立的簡單的問題,有可能問題分解的不當(dāng),請大家見諒,實(shí)際面試了一個的問題但比其復(fù)雜很多,而且涉及一些高等數(shù)學(xué)變換) 字串8

      1) 寫一個函數(shù)計算當(dāng)參數(shù)為n(n很大)時的值 1-2+3-4+5-6+7......+n

      哼,我的心里冷笑一聲!沒想到這么簡單,我有點(diǎn)緊張的心情頓時放松起來!

      于是很快我給出我的解法:

     

    long fn(long n)
    {
    long temp=0;
    int i,flag=1;
    if(n<=0)
    {
    printf("error: n must > 0);
    exit(1);
    }
    for(i=1;i<=n;i++)
    {
    temp=temp+flag*i;
    flag=(-1)*flag;
    }
    return temp;
    }
      搞定!當(dāng)我用期待的目光看著面試官的時候,他微笑著跟我說,執(zhí)行結(jié)果肯定是沒有問題!但當(dāng)n很大的時候我這個程序執(zhí)行效率很低,在嵌入式系統(tǒng)的開發(fā)中,程序的運(yùn)行效率很重要,能讓CPU少執(zhí)行一條指令都是好的,他讓我看看這個程序還有什么可以修改的地方,把程序優(yōu)化一下!聽了這些話,我的心情當(dāng)時變的有點(diǎn)沉重,沒想到他的要求很嚴(yán)格,之后我對程序進(jìn)行了嚴(yán)格的分析,給出了改進(jìn)了的方案!

    long fn(long n)
    {
    long temp=0;
    int j=1,i=1,flag=1;
    if(n<=0)
    {
    printf("error: n must > 0);
    exit(1);
    }
    while(j<=n)
    {
    temp=temp+i;
    i=-i;
    i>0?i++:i--;
    j++;
    }
    return temp;
    }
      雖然我不敢保證我這個算法是最優(yōu)的,但是比起上一個程序,我將所有涉及到乘法指令的語句改為執(zhí)行加法指令,既達(dá)到要題目的要求而且運(yùn)算時間上縮短了很多!而代價僅僅是增加了一個整型變量!但是我現(xiàn)在的信心已經(jīng)受了一點(diǎn)打擊,我將信將疑的看者面試官,他還是微笑著跟我說:“不錯,這個程序確實(shí)在效率上有的很大的提高!”我心里一陣暗喜!但他接著說這個程序仍然不能達(dá)到他的要求,要我給出更優(yōu)的方案!天啊!還有優(yōu)化!我當(dāng)時真的有點(diǎn)崩潰了,想了一會后,我請求他給出他的方案!然后他很爽快的給出了他的程序!

     

     

    long fn(long n)
    {
    if(n<=0)
    {
    printf("error: n must > 0);
    exit(1);
    }
    if(0==n%2)
    return (n/2)*(-1);
    else
    return (n/2)*(-1)+n;
    }
      搞笑,當(dāng)時我目瞪口呆,沒想到他是這個意思,這么簡單的代碼我真的不會寫嗎,但是我為什么沒有往那方面上想呢!他說的沒有錯,在n很大很大的時候這三個程序運(yùn)行時間的差別簡直是天壤之別!當(dāng)我剛想開口說點(diǎn)什么的時候,他卻先開口了:“不要認(rèn)為CPU運(yùn)算速度快就把所有的問題都推給它去做,程序員應(yīng)該將代碼優(yōu)化再優(yōu)化,我們自己能做的決不要讓CPU做,因?yàn)镃PU是為用戶服務(wù)的,不是為我們程序員服務(wù)的!”多么精辟的語言,我已經(jīng)不想再說什么了!接著是第二個問題:

      2),他要求我用一種技巧性的編程方法來用一個函數(shù)實(shí)現(xiàn)兩個函數(shù)的功能n為如:

     

    fn1(n)=n/2!+n/3!+n/4!+n/5!+n/6!

     

    fn2(n)=n/5!+n/6!+n/7!+n/8!+n/9!

     

      現(xiàn)在用一個函數(shù)fn(int n,int flag)實(shí)現(xiàn),當(dāng)flag為0時,實(shí)現(xiàn)fn1功能,如果flag為1時實(shí)現(xiàn)fn2功能!

     

      他的要求還是效率,效率,效率!說實(shí)在話,如果我心情好的話我應(yīng)該能給出一種比較好的算法,但我那時真的沒有什么心思再想了,我在紙上胡亂畫了一些諸如6!=6*5!的公式后直截了當(dāng)?shù)母f要他給出他的答案!面試官也沒有說什么,給出了他的思路:

     

      定義一個二維數(shù)組 float t[2][5]存入[2!,3!,4!,5!,6!},{5!,6!,7!,8!,9!]然后給出一個循環(huán):

     

    for(i=0;i<6;i++)
    {
    temp=temp+n/t[flag];
    }
      最后得到計算值!呵呵,典型的空間換時間的算法!

     

      這些總共花了50分鐘的時間,還有十分鐘我就跟他很隨意的聊聊天,聊了一些編程以及生活的問題,那時的我已經(jīng)很放松了,因?yàn)槲抑肋@次面試結(jié)果只有一個:失敗。5:30的時候面試官要我等通知,于是我離開了他們公司。這就是面試的整個經(jīng)過! 

     

    采編: 武漢北大青鳥

    原載: 北大青鳥魯廣校區(qū) whhpaccp.com

    版權(quán)所有,轉(zhuǎn)載時必須以鏈接形式注明作者和出處及本聲明

    posted on 2008-10-06 10:01 武漢北大青鳥 閱讀(76) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章檔案

    默認(rèn)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一本色道久久88亚洲综合| 无码一区二区三区免费视频| 亚洲Av无码乱码在线播放| 亚洲1区2区3区精华液| 国产精品免费看久久久久| 亚洲国产成人AV在线播放| 国产无遮挡吃胸膜奶免费看视频| 亚洲色少妇熟女11p| 暖暖在线日本免费中文| 美女羞羞喷液视频免费| 亚洲精品A在线观看| 国产一二三四区乱码免费| 国产v亚洲v天堂无码网站| 一级毛片免费不卡在线| 亚洲国产模特在线播放| 久久综合AV免费观看| 老外毛片免费视频播放| 在线A亚洲老鸭窝天堂| 免费人成在线观看网站| 亚洲福利视频网站| 免费看国产成年无码AV片| 亚洲AV网一区二区三区| 亚洲色婷婷综合开心网| 99热在线免费观看| 亚洲中字慕日产2020| 国产一区二区三区免费在线观看| 二个人看的www免费视频| 亚洲精品福利网泷泽萝拉| 真实乱视频国产免费观看| 一区二区三区免费看| 亚洲色图.com| 国产一级高清免费观看| 99久久成人国产精品免费 | 午夜国产精品免费观看 | 国产AV无码专区亚洲AV毛网站 | 午夜无码A级毛片免费视频| ww亚洲ww在线观看国产| 亚洲综合另类小说色区色噜噜| 日本xxxx色视频在线观看免费| 亚洲av永久中文无码精品| 亚洲AV无码乱码国产麻豆|