JAVA 遞迴和迭代兩種方法計算斐波那契數列

2021-08-07 01:56:12 字數 610 閱讀 4380

本來這個數列在很早之前就用遞迴做過一次,當時求的項都比較小,感覺不出來什麼差別。今天,老師講到資料結構和演算法,布置了一道作業,求斐波那契數列的第60項,要求是在10分鐘內計算出結果。

興致勃勃的拿出之前寫的**,為了計算程式耗時,加上了計算執行時間的**,一跑,傻眼了,等了半天也沒見出結果,後來索性不管去做其他的事情了。吃完晚飯回來,一看電腦,好嘛,執行出結果了。下面是圖:

不知不覺跑了快乙個半小時了,才出結果。跟需求的十分鐘真是天壤之別啊。

後來,改用迭代,執行出結果,秒秒鐘的事啊

關於遞迴和迭代,網上也有很多分析的帖子,大致就是遞迴是一直呼叫自己,造成很多的重複計算,浪費大量時間。而迭代,卻不存在這樣的問題,它是一直計算,一直逼近最終答案。這裡放個傳送門,大家可以更好的了解遞迴和迭代

傳送門:

2017/8/17

lucifer

206 反轉鍊錶(兩種方法 迭代和遞迴)

解題思路 1.迭代 建立乙個新的鍊錶的啞巴節點root,建立乙個過度指標n,使用頭插法將head鍊錶中的元素取出插入root鍊錶中,返回root.next class solution listnode root new listnode 0 listnode n null while head n...

ORACLE 遞迴查詢的兩種方法。

1.我們建乙個表 test2 舉例說明 oracle 遞迴查詢的兩種方法。資料結構如下 2.我們的目標是查詢a1下面所有的子節點和所處層級。a.通用做法 寫乙個遞迴sql 如下 select t.level from test2 t start with t.father a1 connect by...

java判斷回文的兩種方法

第一種 面向過程 從字串str.length 2開始向兩端移動進行對比 boolean用來確定乙個返回值判斷是否回文 scanner input new scanner system.in tryif c false system.out.println integer is not a palin...