日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言递推递归题目,C语言-递推递归.ppt

發布時間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言递推递归题目,C语言-递推递归.ppt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言-遞推遞歸

第二講 基礎算法 目錄 遞推 遞歸 排序與檢索 遞推 指一個序列u1,u2,u3,…,un-1,un,后面的每一項都能按公式由前面的一項或連續的幾項推算出來,或者前面的每一項都能按公式由后面的一項或連續的幾項推算出來。前者叫“順推”,后者叫“逆推”。 遞推 有5人坐在一起,當問第5個人多少歲,他說比第4個人大2歲,問第4個人多少歲,他說比第3個人大2歲,依此下去,問第一個人多少歲,他說他10歲,最后求第5個人多少歲? 顯然可以得到如下公式: 斐波那契級數-遞推的經典問題 一對新生小兔,一個月后長成中兔,從第三個月開始長成大兔并每個月生一對小兔。按此規律,一年后共有多少對兔子。 Fibnacci 數列 例-巧妙推算走樓梯 樓梯有n級臺階,如果一步走1級或2級,試問:共有多少種不同的走法? 例-巧妙推算走樓梯 總結:遞推求解的基本方法: 首先,確認:能否容易的得到簡單情況的解? 骨牌鋪放 伯努利裝錯信封問題 分析思路: 得到如下遞推公式: 遞歸 遞歸 遞歸 遞歸 遞歸 Hanoi(漢諾塔)問題:三根柱子A、B、C,其中A柱上有64個大小不等的圓盤,并且大的在下,小的在上。要求把這64個圓盤從A柱移動到C柱上,每次只能移動一個圓盤,移動時可以借助B來進行,但在任何時候,任何柱上的圓盤都必須保持大盤在下,小盤在上。求移動的過程。 遞歸 (1)假如只有一個盤子的話,可以直接將盤子從A柱移動到C柱,即A?C。 遞歸 (2)假如有兩個盤子,則: A?B A?C B?C 遞歸 (3)假如有三個盤子,則情況開始復雜,移動順序為: A?C A?B C?B A?C B?A B?C A?C 遞歸 當有n個盤子需要移動時,通常的方法如下: (1)把A柱上n-1個盤子借助C柱移動到B柱上。只有這樣,C柱才能為空,則A柱上的第n個盤子(最大的那個)才能直接移動到C柱上。 (2)將A柱上的剩下的第n個盤子移動到C柱上。這個盤子已最后到位,不需要再移動了。 (3)再將B柱上的n-1個盤子借助A柱移動到C柱。 遞歸 void hanoi(int n,char A,char B,char C) /*借助B,把n個盤子從A移動到C*/ { if(n==1) move(A,C); else {hanoi(n-1,A,C,B); /*借助C,把n-1個盤子從A移動到B*/ move(A,C); /*把第n個盤子從A移動到C*/ hanoi(n-1,B,A,C); /*借助A,再把n-1個盤子從B移動到C*/ } } 排序與檢索 查找表:用于查找的數據集合,由同一類型數據元素構成. 排序與查找 順序查找法 順序查找法 折半查找法(二分查找) A在心里想一個不超過1000的正整數, 由B來猜,請問可以在多少次以內猜到該數? 折半查找法 折半查找法 折半查找法 折半查找法 插入排序 直接插入排序 初始序列:[51] 33 62 96 87 17 28 51 區別相同關鍵字,[]內為有序序列 i=2(33) [33 51] 62 96 87 17 28 51 i=3(62) [33 51 62] 96 87 17 28 51 i=4(96) [33 51 62 96] 87 17 28 51 i=5(87) [33 51 62 87 96] 17 28 51 i=6(17) [17 33 51 62 87 96] 28 51 i=7(28) [17 28 33 51 62 87 96] 51 i=8(51) [17 28 33 51 51 62 87 96] 直接插入排序 折半插入排序 交換類排序 交換類排序:通過交換逆序元素進行排序. ◆冒泡排序 ◆快速排序 冒泡排序 冒泡排序(Bubble Sort):從頭掃描待排序記錄序列,在掃描過程中順次比較相鄰兩個元素的大小. 冒泡排序 冒泡排序 快速排序 劃分問題:從待排序記錄中選取一個記錄K(第一個)作為分界點。將原始序列與之比較,小于的排到K前面,大于的排到K后面。(左邊的任意元素都小于或等于右邊元素) 遞歸求解:把左右兩部分分別排序(用上述方法),直到所有子表的表長不超過1。 合并問題:不用合并,此時已經是完全有序了。 快速排序 8 3 6 5 14 12 30 快速排序 void QSsort(RecordType r[],int low,int high) { if(low

總結

以上是生活随笔為你收集整理的c语言递推递归题目,C语言-递推递归.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。