最近學了 SML 和 Racket 後,開始對 Functional Programming 很有興趣。 不過在學的過程中,一直有一個疑問: immutable 不會讓程式變很慢嗎?(因為為做很多copy?) 所以想拿個例子分別寫 Functional / Non-functional 的寫法來比較看看速度。就選用最好寫的 Quicksort 好了,程式碼如下: #!/usr/bin/env python from timeit import timeit from random import randint def quicksort_impl(v, start, end): if start + 1 >= end: return pv = v[end - 1] partition = start for i in range(start, end): if v[i] < pv: v[partition], v[i] = v[i], v[partition] partition += 1 v[partition], v[end - 1] = v[end - 1], v[partition] quicksort_impl(v, start, partition) quicksort_impl(v, partition + 1, end) def quicksort(v): quicksort_impl(v, 0, len(v)) return v def quicksort_fp(v): if len(v) == 0: return [] else: return quicksort_fp([x for x in v[:-1] if x < v[-1]]) + \ [v[-1]] + \ quicksort_fp([x for x in v[:-1] if x >= v[-1]]) def quicksort_fp_nl(v): if len(v) ==...
留言
在國小就有雄心壯志了=.=
不像我就只有過一天算一天 哈哈
平常有空不介意我到台北來串你門子吧XD
我可以帶你到處逛逛~
還有卓冠維耶~他在台師大
很近喔:)
那我就可以跑去煩你了..科科...
我記錯了嗎??不過都是在台北啦XDD
再問他好了.
這麼短的文章在你的部落格似乎蠻少見的!!
如果我有機會去台北玩,別忘了盡地主之道喔
只是我覺得要謙虛一點
就這樣...
因為最近剛搬進宿舍
還要選課~很懶得打網誌...
我還欠了好幾篇哩...