※ 引述《journeyman@kkcity.com.tw (㊣台灣宇宙造船公司 XD)》之銘言:
: ※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言:
: > 反正老濕講一堆方法,也不見得有M$的方法快
: > 或者快多少,何不用別人已經寫好的,而且不慢的方法去做...
: > 一定要很學術的用啥啥啥法來做,才有學問
: 若是不用這些方法,那麼就無法顯示你和外面職訓班快速教出來的programmer,有何
: 「差別」。
: 當然你也可以不用在意這些差別,那是你的自由。人之異於禽獸者也幾希。
: > 不過總之...我得到0分
: 應該的。
我覺得這還是出在「命題」問題
什麼叫做最短的Code?
視覺上的程式碼嗎?
那當然是Array.Sort()最短
還是文件編輯器上的最短?
那我只要用支援Unix的編輯器來寫程式碼
在用Windows的記事本來開,不管寫多長都嘛是一行...
更何況不同程式語言寫出來的長度也不盡相同
搭配不同compilier不同設定結果效率也不一樣
事實上程式碼比較短並不會因此比較快
要比也至少規格到
「以x86基本指令集為架構下,能以最短的二進位機械碼完成排列行為
不考慮來源資料為空或非預期資料」
=====
我覺得以GP03的回答來回答老師的答案本身很難說正不正確
畢竟「Code」這詞本身的定義就已經不明確了
今天C#的Array.Sort()是呼叫一個內建的Function
這個Function內容要不要算進行數裡面?
如果不算的話,不就等於我只要另外寫一個Class
然後用呼叫的就算是減少行數?
但是老師也不能說這就是不對
畢竟在「實務上」確實是用一行程式碼解決排列問題
而且反正一般人大概也寫不過人家M$的工程師
人家搞不好真的是用組語去寫的
=====
不過畢竟這是演算法課
學習排列算是一個滿重要的思辨過程
在很多其他的地方(就算不關排列)也都可以用到相同的觀念
--
〒作者:SmallBee 來自:61-224-133-106.dynamic.hinet.net
◎二進位的世界【140.115.50.50‧binary.csie.ncu.edu.tw】