回复 10楼 TonyDeng
为什么我觉得从时间复杂度的角度分析这两个是一样的啊。
時間差不了多少,但第一個版本的pch與pchEnd比較執行了兩次,第二個只有一次。第一個版本的行數短了,第二個版本多了一個if語句,代碼複雜度似乎大了一點。可能在某些人看來,會覺得第一個版本的代碼緊湊,或者不能容忍兩個return,但其實它不如第二個版本,清晰度是第二個版本的較好(比較而言,?:表達式的本質是if語句,把它還原了,就可以看到第一個版本其實有多複雜)。我主要的意思是,不要看代碼長短,效率不是那樣看的,未必代碼短、看起來簡潔,效率就會高。
事實上,這兩個版本都有潛在風險。我只是拿它們舉個例子罷了,指的是時間複雜度和空間複雜度。一般來說,時間效率高的代碼,往往代碼複雜度也是較高的,代碼量也大,即空間複雜度會大,也更難理解。把握平衡度很重要,不必過分追求。比如那個最簡短的八皇后問題的代碼,沒人能說它不精巧,但事實上沒幾個人能夠讀得懂和理解得了(在我看來,那是不可取的代碼,不過不排除有人追求這樣的代碼)。
[ 本帖最后由 TonyDeng 于 2012-2-18 13:00 编辑 ]