資料結構和演算法之遞迴

2021-10-01 10:34:53 字數 2232 閱讀 3710

//遞迴問題:方法自己呼叫自己,每次呼叫傳入不同的值

public

class

recursiontest

public

static

void

test

(int n)

system.out.

println

("n="

+n);

}}

public

class

recursiontest02

public

static

inttest

(int n)

return n*

test

(n-1);

}}

package recursion;

//迷宮問題

public

class

migong

for(

int i =

0; i <

8; i++

)//設定擋板

map[3]

[1]=

1;map[3]

[2]=

1;//輸出地圖

for(

int i =

0; i <

8; i++

) system.out.

println()

;}//使用遞迴回溯找路徑

/*setway(map,1,1);

system.out.println("下-》右-》上-》左找到路徑後的迷宮情況:");

for (int i = 0; i <8 ; i++)

system.out.println();

}*///按照策略走 上-》右-》下-》左後的找迷宮路徑情況

setway2

(map,1,

1); system.out.

println

("上-》右-》下-》左找到路徑後的迷宮情況:");

for(

int i =

0; i <

8; i++

) system.out.

println()

;}}//使用遞迴回溯找路

//說明:

/* * 1.map表示地圖

* 2.i,j表示從哪個位置出發,從(1,1)出發

* 3.如果小球能到(6,5)說明通路找到

* 4.約定:map[i,j]=0表示該點沒有走過,=1表示牆,=2表示通路可以走,=3走過卻不通

* 5.走迷宮策略:下-》右-》上-》左,如果該點走不通再回溯

* */

/* * map表示地圖

* i,j表示從哪個位置開始找

* 如果找到路返回true,沒找到返回false

* */

public

static

boolean

setway

(int

map,

int i,

int j)

else

elseif(

setway

(map, i, j+1)

)elseif(

setway

(map, i-

1, j)

)elseif(

setway

(map, i, j-1)

)else

}else}}

//修改找路策略

//上-》右-》下-》左

public

static

boolean

setway2

(int

map,

int i,

int j)

else

elseif(

setway2

(map, i, j+1)

)elseif(

setway2

(map, i+

1, j)

)elseif(

setway2

(map, i, j-1)

)else

}else}}

}

資料結構之遞迴演算法

迭代思想 遞迴事實上就是函式自己呼叫自己,我們先一起看下 的實現,然後再來分析 例如 i 5 的時候,不停地呼叫自身,只有當 i 0,1 時才可以計算結果。在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質的不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式。迭代使...

資料結構和演算法 遞迴

標籤 空格分隔 資料結構和演算法 include int main return 0 include int fib int i int main 例計算 n 的階乘 n include int factorial n int main 例編寫乙個遞迴函式,實現將輸入的任意長度的字串反向輸出的功能。...

資料結構和演算法 遞迴

遞迴,其實就是自己呼叫自己,實現乙個不斷重複的工作,直接上 給你們講解一下,應該就明白遞迴是什麼東東了,遞迴其實也是一種迴圈,他也是有終止條件的,否則就變成了死迴圈,這個 的終止條件就是 因為這裡就沒有再次呼叫自己,所以就終止了。從這個 我們也可以看出來,這裡的遞迴就實現了抱著,我的,這兩個詞語的多...