遞歸和迭代有什么區(qū)別?

2023-01-30 14:27

1個(gè)回答
遞歸和迭代都是循環(huán)的一種。
簡(jiǎn)單地說,遞歸是重復(fù)調(diào)用函數(shù)自身實(shí)現(xiàn)循環(huán)。迭代是函數(shù)內(nèi)某段代碼實(shí)現(xiàn)循環(huán),而迭代與普通循環(huán)的區(qū)別是:循環(huán)代碼中參與運(yùn)算的變量同時(shí)是保存結(jié)果的變量,當(dāng)前保存的結(jié)果作為下一次循環(huán)計(jì)算的初始值。

遞歸循環(huán)中,遇到滿足終止條件的情況時(shí)逐層返回來結(jié)束。迭代則使用計(jì)數(shù)器結(jié)束循環(huán)。當(dāng)然很多情況都是多種循環(huán)混合采用,這要根據(jù)具體需求。

遞歸的例子,比如給定一個(gè)整數(shù)數(shù)組,采用折半查詢返回指定值在數(shù)組中的索引,假設(shè)數(shù)組已排序,為方便描述,假設(shè)元素都為正數(shù),數(shù)組長(zhǎng)度為2的整數(shù)倍。
折半查詢是查詢的一種,比遍歷所有元素要快很多。
int Find(int *ary,int index,int len,int value)
{
if(len==1)//最后一個(gè)元素
{
if (ary[index]==value)return index;//成功查詢返回索引
return -1;//失敗,返回-1
}
//如果長(zhǎng)度大于1,進(jìn)行折半
遞歸查詢
int half=len/2;
//檢查被查值是否大于上半部分最后一個(gè)值,如果是則遞歸查詢后半部分
if(value>ary[index+half-1])
return Find(ary,index+half,half,value);
//否則遞歸查詢上半部分
return Find(ary,index,half,value);
}

迭代經(jīng)典例子就是實(shí)數(shù)的累加,比如計(jì)算1-100所有實(shí)數(shù)的和。
int v=1;
for(i=2;i<=100;i++)
{
v=v+i;
}
相關(guān)問答
遞歸和迭代有什么區(qū)別
1個(gè)回答2022-11-13 20:05
遞歸(recursion):遞歸常被用來描述以自相似方法重復(fù)事物的過程,在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,指的是在函數(shù)定義中使用函數(shù)自身的方法。(A調(diào)用A) 迭代(iteration):重復(fù)反饋過程的活動(dòng),每一...
全文
“遞歸”和“迭代”有什么區(qū)別?
2個(gè)回答2023-02-09 15:21
“遞歸”和“迭代”的區(qū)別如下: 1、遞歸的基本概念:程序調(diào)用自身的編程技巧稱為遞歸,是函數(shù)自己調(diào)用自己.一個(gè)函數(shù)在其定義中直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型的復(fù)雜的問題轉(zhuǎn)化為一個(gè)與原問...
全文
遞歸與迭代的區(qū)別
1個(gè)回答2022-11-14 23:12
  1、“遞歸”是指函數(shù)/過程/子程序在運(yùn)行過程序中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)像.。在計(jì)算機(jī)編程里,遞歸指的是一個(gè)過程:函數(shù)不斷引用自身,直到引用的對(duì)象已知。   2、“迭代”的含義是:重復(fù)反饋...
全文
遞歸和迭代有什么區(qū)別?
2個(gè)回答2022-07-29 16:21
“遞歸”和“迭代”的區(qū)別如下: 1、遞歸的基本概念:程序調(diào)用自身的編程技巧稱為遞歸,是函數(shù)自己調(diào)用自己.一個(gè)函數(shù)在其定義中直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型的復(fù)雜的問題轉(zhuǎn)化為一個(gè)與原問...
全文
漫談遞歸:循環(huán)與迭代是一回事嗎
1個(gè)回答2023-01-31 12:15
迭代表示將一次計(jì)算的結(jié)果再作為輸入代入公式,循環(huán)往復(fù)。有點(diǎn)像閉環(huán)反饋,只是加了個(gè)條件來停止而已。 其實(shí)現(xiàn)方式可以是循環(huán)的也可以是遞歸的。因此,迭代和遞歸循環(huán)之間有聯(lián)系,但不能相互比較。
"險(xiǎn)象迭生"的迭怎么讀?
1個(gè)回答2022-12-25 21:25
第二聲,dié
迭代一詞可想到什么成語?
1個(gè)回答2024-02-09 02:31
正反饋。滾雪球。步步高。從頭越。連鎖反應(yīng)。雪崩效應(yīng)。環(huán)環(huán)相扣。相輔相成。相得益彰。 互相提攜。共生共榮。步步為營(yíng)。更上層樓。良性循環(huán)。生生不息。薪火相傳。承上啟下。 創(chuàng)新發(fā)展。滄海桑田。孵化基地。星...
全文
日月更迭什么意思
1個(gè)回答2024-02-13 01:51
日月更迭是一個(gè)組合詞,意思是日夜交換更替,時(shí)間飛逝。 一、日月 1、釋義 天體,即太陽和月亮,也指永恒不滅本源陰陽的代指;時(shí)間的意思,二十四小時(shí)為一天,三十天為一月;陰陽的意思,古人把太陽稱...
全文
迭代一詞可想到什么成語
1個(gè)回答2024-02-05 06:33
正反饋。滾雪球。步步高。從頭越。連鎖反應(yīng)。雪崩效應(yīng)。環(huán)環(huán)相扣。相輔相成。相得益彰。 互相提攜。共生共榮。步步為營(yíng)。更上層樓。良性循環(huán)。生生不息。薪火相傳。承上啟下。 創(chuàng)新發(fā)展。滄海桑田。孵化基地...
全文
迭是什么意思
1個(gè)回答2022-12-28 02:55
迭在這里是連續(xù)不斷的出現(xiàn)的意思,迭淺就是漸漸的淺了的意思
熱門問答