1.什么是遞歸
什么是遞歸遞歸就是函數(shù)(方法)不斷調(diào)用自身搪缨,直至求出結(jié)果的算法次氨。
其思路是把一個(gè)大問題轉(zhuǎn)化為規(guī)模縮小了的子問題艾凯,通過解決小問題來解決最終的大問題献幔。
2.階乘
3.理解遞歸:調(diào)用順序、和循環(huán)的關(guān)系
1)遞歸的運(yùn)行順序
2)遞歸和循環(huán)趾诗,把前面用循環(huán)實(shí)現(xiàn)的二分法查找蜡感,用遞歸來實(shí)現(xiàn)
4.理解分治算法
基本思想是將一個(gè)大的問題分解為N個(gè)較小的子問題,這些子問題相互獨(dú)立且與原問題性質(zhì)相同恃泪。求出子問題的解郑兴,就可得到原問題的解。
5.斐波那契數(shù)列
斐波那契數(shù)列贝乎,又稱黃金分割數(shù)列情连,形如:0, 1, 1, 2, 3, 5, 8, 13......
1)第0項(xiàng)是0,第1項(xiàng)是第一個(gè)1
2)從第二項(xiàng)開始览效,每一項(xiàng)都等于前兩項(xiàng)之和
6.漢諾塔(河內(nèi)塔)問題
在ABC三根柱子上却舀,有n個(gè)圓形盤以從下到上虫几、從大到小的次序疊置在A塔上。現(xiàn)要將A塔上的所有圓形盤挽拔,借助B搭辆脸,全部移動(dòng)到C塔上。且仍按照原來的次序疊置螃诅。移動(dòng)的規(guī)則如下:
1)這些圓形盤只能在3個(gè)塔問進(jìn)行移動(dòng)
2)一次只能移動(dòng)一個(gè)盤子
3)任何時(shí)候都不允許將較大的盤子壓在比它小的盤子的上面
7.背包問題
背包問題背包問題是一種組合優(yōu)化的問題每强,一種簡(jiǎn)化形式如下:給定一組物品,重量各不相同州刽,如何從中選擇物品放入背包中空执,以使背包重量達(dá)到指定的重量。
8.歸并排序
歸并排序思路:采用分治的思想穗椅,把數(shù)據(jù)序列分成兩個(gè)子序列辨绊,排序每一半,然后再把排好序的兩個(gè)子序列合并成為一個(gè)有序的序列匹表。
歸并排序的效率:歸并排序的時(shí)間是O(N*logN)门坷,主要是復(fù)制和比較花費(fèi)時(shí)間