91夜夜人人揉人人捏人人添-91一区二区三区四区五区-91伊人久久大香线蕉-91在线电影-免费a网址-免费v片网站

當前位置:網站首頁 >> 作文 >> 最新c語言中的遞歸函數是怎樣的模板

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

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

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

c語言中的遞歸函數是怎樣的篇一

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

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

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

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

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

函數的遞歸是c語言教學中的一個難點,本節根據上面給出的遞歸程序結構,通過一組從簡單到復雜的實例,逐步引導學生掌握遞歸程序編寫的技巧。

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

分析:該問題可使用下述遞歸結構進行求解:

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

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

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

分析:該問題可使用下述遞歸結構進行求解:

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

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

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

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

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

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

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

分析:該問題可使用下述遞歸結構進行求解:

(1)當n=1時,直接輸出排序結果;

(2)當n>1時,按下列方法進行排序:

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

②對兩個子數組分別進行排序;

③將兩個排序后的子數組進行合并。

其中參數left和right分別代表當前數組的第1個元素和最后一個元素的下標。

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

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

在c語言教學中,函數的遞歸一直是教學的重點和難點。本文首先從理論上給出遞歸的程序結構,然后以該結構為指導,通過一組程序實例,引導學生掌握遞歸程序的編寫技巧,理解應用分治法解決復雜問題的思想。實踐證明,本方法在課堂教學中取得較好的效果。

s("content_relate");

【c語言中遞歸函數的教學方法】相關文章:

c語言函數的遞歸調用

10-04

c語言遞歸函數的執行與求解

11-15

c語言中time函數的用法

10-08

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

10-04

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

11-21

c語言中函數的區分有哪些

11-21

c語言函數教學方法

11-27

c語言中函數之間地址傳遞方式

11-13

在c語言中函數調用方式的區別

11-20

全文閱讀已結束,如果需要下載本文請點擊

下載此文檔
a.付費復制
付費獲得該文章復制權限
特價:5.99元 10元
微信掃碼支付
已付款請點這里
b.包月復制
付費后30天內不限量復制
特價:9.99元 10元
微信掃碼支付
已付款請點這里 聯系客服
主站蜘蛛池模板: 真实国产乱弄免费视频 | 中国一级毛片免费看视频 | 亚洲日本中文字幕天天更新 | 波多野结衣在线观看3人 | 午夜在线观看视频 | 日韩色视频一区二区三区亚洲 | 国产极品粉嫩 | 欧类av怡春院 | 50岁老女人毛片一级亚洲 | 特级一级毛片视频免费观看 | 欧美成人小视频 | 天天爽天天爱 | 手机看片1024久久精品你懂的 | 久草人体 | 欧美日韩国产剧情 | 日韩免费高清一级毛片久久 | 日本一区二区免费在线 | 国产日韩欧美在线观看 | 一级特黄特黄的大片免费 | 在线日本中文字幕 | 在线 你懂 | 在线国产一区二区三区 | 国产精品视频免费视频 | 成年福利片120秒体验区 | 欧美在线色图 | 欧美精品专区免费观看 | 在线日本中文字幕 | 在线天堂资源www中文在线 | 精品一区二区三区中文字幕 | 欧美成人观看免费完全 | 亚洲视频一| 五月综合激情久久婷婷 | 中文字幕视频 | 97人人人人| 色y情视频免费看 | 亚洲欧美v国产一区二区 | 天天碰人人 | 天天综合天天看夜夜添狠狠玩 | 欧美亚洲欧美区 | 在线 | 一区二区三区四区 | 一级做α爱过程免费视频 |