> ==>發信人: 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