欧美成人永久免费_欧美日本五月天_A级毛片免看在线_国产69无码,亚洲无线观看,精品人妻少妇无码视频,777无码专区,色大片免费网站大全,麻豆国产成人AV网,91视频网络,亚洲色无码自慰

當(dāng)前位置:網(wǎng)站首頁 >> 作文 >> 最新c語言中的遞歸函數(shù)是怎樣的模板

最新c語言中的遞歸函數(shù)是怎樣的模板

格式:DOC 上傳日期:2023-04-28 19:10:48
最新c語言中的遞歸函數(shù)是怎樣的模板
時間:2023-04-28 19:10:48     小編:zdfb

在日常的學(xué)習(xí),、工作、生活中,,肯定對各類范文都很熟悉吧。寫范文的時候需要注意什么呢?有哪些格式需要注意呢,?下面是小編幫大家整理的優(yōu)質(zhì)范文,,僅供參考,,大家一起來看看吧,。

c語言中的遞歸函數(shù)是怎樣的篇一

導(dǎo)語:函數(shù)遞歸基于分治法思想,,將復(fù)雜的大規(guī)模問題轉(zhuǎn)化為小規(guī)模問題進(jìn)行求解,,在算法設(shè)計中具有重要的理論意義和實用價值,是c語言教學(xué)的難點(diǎn),。下面就由小編為大家介紹一下c語言中遞歸函數(shù)的教學(xué)方法,歡迎大家閱讀!

c語言是一種語法簡潔緊湊,、運(yùn)算符豐富,、可移植性強(qiáng)、目標(biāo)程序執(zhí)行效率高的強(qiáng)數(shù)據(jù)類型語言,,近年來在國內(nèi)得到迅速的推廣應(yīng)用,。作為我校信息類本科教學(xué)的入門語言,c語言是匯編語言,、計算機(jī)原理,、單片機(jī)程序設(shè)計等其他后繼課程的基礎(chǔ),對整個教學(xué)過程具有重要的作用,。

所有的c語言程序都由函數(shù)組成,。在函數(shù)的調(diào)用中,直接或間接地調(diào)用自身的函數(shù)稱為遞歸函數(shù),,相應(yīng)的'算法稱為遞歸算法,。在計算機(jī)算法設(shè)計與分析中,遞歸算法是一類較重要的算法,,遞歸的使用往往使函數(shù)的定義和算法的描述簡潔且易于理解,。

對于任何可以用計算機(jī)求解的問題,其求解難度與計算時間都與問題的規(guī)模有關(guān),。若一個規(guī)模較大的且難以直接解決的問題能夠分解為k個規(guī)模較小的子問題,,并且這些子問題互相獨(dú)立且與原問題相同,那么可以通過對這些子問題進(jìn)行分別求解,,然后將各個子問題的解合并,,得到原問題的解。其中p代表原始問題,,p1,、p2…pk是比原始問題的規(guī)模|p|更小的子問題,merge函數(shù)將子問題的解y1,、y2…yk進(jìn)行合并,。

假設(shè)原始問題規(guī)模為n,子問題p1,、p2…pk的規(guī)模為n/m,,分解閾值n0=1,且adhoc函數(shù)求解規(guī)模為1的問題耗費(fèi)1個單位時間,。再設(shè)合并函數(shù)merge的時間復(fù)雜度為f此時遞歸算法具有多項式的計算復(fù)雜度,,其階數(shù)由子問題的劃分?jǐn)?shù)目k和子問題的規(guī)模n/m共同決定,。

函數(shù)的遞歸是c語言教學(xué)中的一個難點(diǎn),本節(jié)根據(jù)上面給出的遞歸程序結(jié)構(gòu),,通過一組從簡單到復(fù)雜的實例,,逐步引導(dǎo)學(xué)生掌握遞歸程序編寫的技巧。

實例1(階乘問題):計算整數(shù)n的階乘,。

分析:該問題可使用下述遞歸結(jié)構(gòu)進(jìn)行求解:

(1)當(dāng)n=1時,,可以直接計算n!=1;

(2)當(dāng)n>1時,n!可以通過對1個小規(guī)模的子問題(n-1)!的求解得到,,也即n!=(n-1)!*n,。

實例2(hanoi塔問題):設(shè)a、b,、c是三個塔座,。開始時,在a座處自上而下,、從小到大地疊放n個圓盤,,編號分別為1、2,、…n,,如圖1所示。現(xiàn)要求將a座處的所有圓盤按同樣的次序堆疊到b座上,,并且要求:(1)每次只能移動1個圓盤;(2)任何時候都不允許將大盤壓在小盤的上方,。

分析:該問題可使用下述遞歸結(jié)構(gòu)進(jìn)行求解:

(1)當(dāng)n=1時,直接將盤從a座移動到b座;

(2)當(dāng)n>1時,,將圓盤按下列方法移動(見圖2):

①將a座上的n-1個盤移動到c座;

②將a座的第n個盤移動到b座;

③將c座上的n-1個盤移動到b座,。

根據(jù)以上分析,可以寫出如下的程序:

實例3(排序問題):對n個元素的整型數(shù)組array進(jìn)行排序,。

分析:該問題可使用下述遞歸結(jié)構(gòu)進(jìn)行求解:

(1)當(dāng)n=1時,,直接輸出排序結(jié)果;

(2)當(dāng)n>1時,按下列方法進(jìn)行排序:

①將array分成大小基本相同的兩部分;

②對兩個子數(shù)組分別進(jìn)行排序;

③將兩個排序后的子數(shù)組進(jìn)行合并,。

其中參數(shù)left和right分別代表當(dāng)前數(shù)組的第1個元素和最后一個元素的下標(biāo),。

對于該排序算法,子問題的數(shù)目k=2,,規(guī)模n/m = n/2,。因為函數(shù)merge的合并操作可以在線性時間內(nèi)完成,所以由(3)式可以得到相應(yīng)的時間復(fù)雜度為

t(n)=o(nlogn)(4)

在c語言教學(xué)中,,函數(shù)的遞歸一直是教學(xué)的重點(diǎn)和難點(diǎn),。本文首先從理論上給出遞歸的程序結(jié)構(gòu),然后以該結(jié)構(gòu)為指導(dǎo),,通過一組程序?qū)嵗?,引?dǎo)學(xué)生掌握遞歸程序的編寫技巧,,理解應(yīng)用分治法解決復(fù)雜問題的思想。實踐證明,,本方法在課堂教學(xué)中取得較好的效果,。

s("content_relate");

【c語言中遞歸函數(shù)的教學(xué)方法】相關(guān)文章:

c語言函數(shù)的遞歸調(diào)用

10-04

c語言遞歸函數(shù)的執(zhí)行與求解

11-15

c語言中time函數(shù)的用法

10-08

c語言中strpbr()函數(shù)的用法

10-04

c語言中isalnum()函數(shù)和isalpha()函數(shù)的對比

11-21

c語言中函數(shù)的區(qū)分有哪些

11-21

c語言函數(shù)教學(xué)方法

11-27

c語言中函數(shù)之間地址傳遞方式

11-13

在c語言中函數(shù)調(diào)用方式的區(qū)別

11-20

全文閱讀已結(jié)束,如果需要下載本文請點(diǎn)擊

下載此文檔
a.付費(fèi)復(fù)制
付費(fèi)獲得該文章復(fù)制權(quán)限
特價:5.99元 10元
微信掃碼支付
已付款請點(diǎn)這里
b.包月復(fù)制
付費(fèi)后30天內(nèi)不限量復(fù)制
特價:9.99元 10元
微信掃碼支付
已付款請點(diǎn)這里 聯(lián)系客服