精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: SmallBee.bbs@binary.csie.ncu.edu.tw (喵~~~), 信區: programming > ※ 引述《journeyman@kkcity.com.tw (㊣台灣宇宙造船公司 XD)》之銘言: > : ※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言: > : > 反正老濕講一堆方法,也不見得有M$的方法快 > : > 或者快多少,何不用別人已經寫好的,而且不慢的方法去做... > : > 一定要很學術的用啥啥啥法來做,才有學問 > : 若是不用這些方法,那麼就無法顯示你和外面職訓班快速教出來的programmer,有何 > : 「差別」。 > : 當然你也可以不用在意這些差別,那是你的自由。人之異於禽獸者也幾希。 > : > 不過總之...我得到0分 > : 應該的。 > 我覺得這還是出在「命題」問題 > 什麼叫做最短的Code? > 視覺上的程式碼嗎? > 那當然是Array.Sort()最短 .... > ===== > 我覺得以GP03的回答來回答老師的答案本身很難說正不正確 > 畢竟「Code」這詞本身的定義就已經不明確了 > 今天C#的Array.Sort()是呼叫一個內建的Function > 這個Function內容要不要算進行數裡面? > 如果不算的話,不就等於我只要另外寫一個Class > 然後用呼叫的就算是減少行數? > 但是老師也不能說這就是不對 > 畢竟在「實務上」確實是用一行程式碼解決排列問題 > 而且反正一般人大概也寫不過人家M$的工程師 > 人家搞不好真的是用組語去寫的 > ===== > 不過畢竟這是演算法課 > 學習排列算是一個滿重要的思辨過程 > 在很多其他的地方(就算不關排列)也都可以用到相同的觀念 演算法估算的都是跟資料量 n 成比例的 "動作數" 是數量級(order)多少. 最短的 code 這種說法是早期使用組語時, code 指的就是 instruction code , 而一個 instruction 就會是個基本運算動作(像 CRAY 那種 one instruction one clock cycle). 若用 loop 寫最短的 code , 當然比重覆 loop 數的 code sequence 好, 至少省 program/memory size. "最短的 code" 可算是中文表達的太過簡略引發的. 就寫程式言, 除了動作 次數外, 還要考慮佔用的記憶體數都希望是最少. 不過演算法都不計較的這 麼細, 不差一個 order 的數量級是不會受到太多注目. 以前記憶體 1 bit = US$1元 的時代, 最短的 code 是是受重視的. 不過, 這也算是 "入行" 的術語, 術語的認知總要一致吧 ! 不然, 就 不可能有 "齊一的品質". 這些一直都是軟體比起硬體搞不好的癥結之一. 如果答 array.sort() 不會得 0 分, 那自由度未免太高了 ! -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234