作者liu2007 (薯)
看板Programming
標題[問題] 遞迴的使用時機
時間Mon Oct 21 01:12:26 2013
/遞迴 /recursive 都沒看到相關的文章
想請問遞迴在 C or java 這些非人工智慧的語言上的使用時機
使用遞迴寫程式真的是很美妙,可是速度實在是很糟糕
而且一不小心記憶體就爆了
但是既然語言支持了遞迴,總是有個理由說能夠在某些時候使用吧?
而這些時機到底是什麼呢?
google的幾個結果大同小異:「通常問題很複雜,而且你不在意花費時間的時候」
所以遞迴只能活在假設情況下嗎??
又或者遞迴只能活在使用的時候整個tree不會span很大的時候使用??
--
If a child on the street who has nothing is willing to share,
why are we who have everything still so greedy?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.1.108.108
1F:推 LaPass:要看狀況說.... 114.38.75.24 10/21 01:26
2F:→ LaPass:我沒在學校上過任何一堂演算法的課,遞迴也 114.38.75.24 10/21 01:26
3F:→ LaPass:是自己看書時看到別人這樣寫,就學起來的 114.38.75.24 10/21 01:26
4F:→ LaPass:當問題的資料是用等差級數在增加的時候,用 114.38.75.24 10/21 01:27
5F:→ LaPass:遞迴就可以很漂亮的幹掉它 114.38.75.24 10/21 01:27
6F:→ LaPass:舉例來說,二元樹,一般狀況下資料不會無 114.38.75.24 10/21 01:28
7F:→ LaPass:限制增加,遞迴用下去就可以解很快。 114.38.75.24 10/21 01:29
8F:推 CaptainH:在bottom-up很難寫的時侯 114.137.42.228 10/21 01:31
9F:→ azureblaze:很多問題樹都不會太大太深... 1.34.63.98 10/21 01:32
10F:→ MOONRAKER:習慣什麼問題用recursion寫,寫就對了 118.163.12.174 10/21 11:00
11F:→ MOONRAKER:什麼活在假設狀況,traverse DOM tree是 118.163.12.174 10/21 11:01
12F:→ MOONRAKER:假設狀況?不如說計算機應用都假設算了 118.163.12.174 10/21 11:02
13F:→ MOONRAKER:根本假議題。 >:( 118.163.12.174 10/21 11:02
14F:推 chchwy:遞迴!=慢 要看你怎麼寫 211.21.137.252 10/21 12:38
15F:推 wuliou:用低階語言懶得實作Stack的時候 60.244.25.92 10/21 15:29
16F:→ DreamLinuxer:Tail recursion is as fast as loop 60.251.198.205 10/21 16:39
17F:推 liar2:公司筆試的時候 好用到炸 1.161.120.225 10/26 03:22
18F:→ rofellosx:甚麼是人工智慧的語言 114.32.64.90 11/12 17:11
19F:→ suhorng:lisp XD? 140.112.16.146 11/12 18:01