遞迴函式(二分搜尋,漢諾塔問題,斐波那契數列)

2021-09-27 11:28:32 字數 1856 閱讀 9960

**

遞迴實現

if => 遞迴的結束條件

else =>遞推關係(隱含了乙個規模的縮減)

遞迴實現二分搜尋

public

class

test

arrays.

sort

(arr)

;int index=

binarysearch

(arr,integer)

; system.out.

println

("index:"

+index)

; system.out.

println

(arrays.

tostring

(arr));

}/**

* 遞迴實現二分查詢

* @param arr

* @param

* @param

* @param data

* @return

*/private

static

intbinarysearch

(int

arr,

int data)

/** * 在arr陣列中,從i到j範圍的元素序列中,以二分查詢的方式,找data值

* @param arr

* @param i

* @param j

* @param data

* @return

*/private

static

intbinarysearch

(int

arr,

int i,

int j,

int data)

int mid=

(j-i+1)

/2+i;if

(arr[mid]

==data)

if(arr[mid]

>data)

else

//mid+1<->j範圍內中data

}}

遞迴實現斐波那契數列

public

static

void

main

(string[

] args)

/** * 求第n個斐波那契的值,用遞迴實現

* @param n

* @return

*/private

static

intfibonacci

(int n)

return

fibonacci

(n-1)+

fibonacci

(n-2);

}

遞迴實現漢諾塔問題

public

static

void

main

(string[

] args)

/** * hanoi問題求解

* @param i 盤子個數

* @param a 起始的柱子

* @param b 借助的柱子

* @param c 目標的柱子

*/private

static

void

hanoi

(int i,

char a,

char b,

char c)

else

}}

遞迴 斐波那契數列 漢諾塔

遞迴 在乙個方法 函式 的內部呼叫該方法 函式 本身的程式設計方式。遞迴 public static void print int i public class testfebonacci 列印第n項斐波那契數列 public static int febonacci int i else publ...

遞迴 漢諾塔問題和斐波那契數列

1.遞迴 遞迴簡單來講就是方法內部呼叫方法本身,它有如下要求 1.必須要有臨界條件,也就是遞迴必須要有出口,不能無限制的向深層呼叫方法,否則會棧溢位。2.漢諾塔問題 問題 有三根柱子 a,b,c。a柱子上有3個盤子,分別是1,2,3,如何使用最少的移動次數,將3個盤子從柱子a移動到柱子c?規則 1....

遞迴斐波那契數列和漢諾塔

程式呼叫自身的程式設計技巧稱為遞迴 在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質的不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式 斐波那契數列指的是這樣乙個數列 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img anzoocxp 1607...