演算法設計與分析 第三節課 遞迴演算法

2021-09-27 11:49:07 字數 3743 閱讀 8699

一、遞迴法的處理過程

將f(n)向f(n-1)轉化,f(n-1)向法f(n-2)轉化,直到f(0)

反向由f(1)一直推出f(n)

#include

void

fun(

int n)

}int

main()

2.執行結果

二、遞迴法和非遞迴法求n的階層

非遞迴法

#include

intfun

(int n)

intmain()

遞迴法

#include

intfun

(int n)

intmain()

三、fibonacci數列

數列: 0,1,1,2,3,5,8,13,21,34,55, 89,144,233,377,610,987,1597,2584, 4181,6765,10946,17711,28657,46368

a1=1,a2=1

an=a(n-1)+a(n-2)

非遞迴法

#include

intf

(int n)

return

(f3);}

intmain()

遞迴法

#include

intf

(int n)

intmain()

四、分解乙個高位數

**

#include

void

digits

(int n)

}int

main()

執行結果

五、冒泡安排的遞迴演算法

*b)//交換函式

void

bubblesort

(int a,

int n,

int i)

if(exchange==false)

//如果沒有發生交換,證明已經排好序

return

;else

bubblesort

(a,n,i+1)

;//排除最前的i個已經排好的數,往前移動 }}

intmain()

;printf

("排序前,陣列為");

for(i=

0;i<

7;i++

)printf

("%d "

,a[i]);

printf

("\n");

bubblesort

(a,7,0

);printf

("排序後,陣列為");

for(i=

0;i<

7;i++

)printf

("%d "

,a[i]);

return0;

}3.執行結果

六、選擇排序的遞迴演算法

("排序前,陣列為");

for(i=

0;i<

7;i++

)printf

("%d "

,a[i]);

printf

("\n");

selectsort

(a,7,0

);printf

("排序後,陣列為");

for(i=

0;i<

7;i++

)printf

("%d "

,a[i]);

return0;

}執行結果

七、遞迴求羅漢塔

解題目標:將n個積木從x移到z上

解題思路:

第n-1個 從x移到y

第n個 從x移到z

第n-1個 從y移到z

遞迴操作以上步驟

**

#include

voidf(

int n ,

char x,

char y,

char z)

//基本解題思路

//第n-1個 從x移到y

//第n個 從x移到z

//第n-1個 從y移到z

}int

main()

3.結果

八、六皇后問題遞迴解法

解題思路

遞迴思想:每行放置乙個皇后

限制:每個皇后不能是同行,同列,對角線關係

1.**

#include

#include

int q[7]

=;int p[7]

[7]=

;int k=0;

int t=1;

bool place

(int i,

int j)

//傳入兩個引數

return true;

//通過返回

}void

show

(int p[7]

)//列印一維存放方式

printf

("\n");

}void

show1

(int p[

7])//打應棋盤

printf

("\n");

}}void

queen

(int i,

int n)

//i為函式, }}

}}intmain()

2.結果

csdn第三節課

筆記部分 1.網頁中影象的插入 一.屬性 1 alt 當無法顯示是給以使用者提示 2 title 滑鼠移動到上時顯示資訊 3 src 用於 中找出的路徑.二.路徑 1 當前的目錄檔案 直接寫出檔名 或 檔名 2 子集目錄檔案 同級檔名 子集檔名 3 上級檔案 檔名 多一級多加乙個 2.超連結 一.兩...

php第三節課

正規表示式 正規表示式 斜槓代表定界符 str abcde123fg456h reg d echo preg replace reg,str 將字串 str按照職責表示式reg替換為 var dump preg split reg,str 將字串str按照正規表示式拆分 arr array preg...

Oracle第三節課總結

集合運算 一 union求並集,公共部分只有包含一次 例 求emp表ename中含 a 或含有 m select from emp whereename like a union select from emp where ename like m 二 union all求集並,公共部分只有包含二次...