String的應用及遞迴

2021-08-30 11:12:54 字數 2423 閱讀 8938

(1).字串的左旋和右旋

public

static string reverse0

(string str,

int begin,

int end)

return string.

copyvalueof

(ch)

;}

這是乙個逆置函式,然後左旋就是先進行部分逆置,然後在整體逆置;

而 右旋則相反,先進行整體逆置,在部分逆置;

左旋:

public

static

void

reverseleft

(string str,

int n)

int left=0;

int leftend=n-1;

int right=n;

int rightend=str.

length()

-1; str=

reverse0

(str,left,leftend)

; str=

reverse0

(str,right,rightend)

; str=

reverse0

(str,left,rightend)

; system.out.

println

(str)

;}

右旋:
public

static

void

reverseright

(string str,

int n)

int left=0;

int leftend=n-1;

int right=n;

int rightend=str.

length()

-1; str=

reverse0

(str,left,rightend)

; str=

reverse0

(str,left,leftend)

; str=

reverse0

(str,right,rightend)

; system.out.

println

(str)

;}

1.遞迴的介紹:

遞迴做為一種演算法在程式語言中廣泛應用。遞迴的能力在於用有限的語句來定義物件的無限集合。一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。

2.遞迴的使用:

最常見的斐波那契數列求第n項的值 如果用for迴圈寫:

public

static

intfibona

(int n)

}else

return array[n-1]

;}

如果用遞迴寫:

public

static

intfibonac

(int n)

else

}

對於這個題,可以看出,用for迴圈的寫的話,**長而複雜,而且不容易理解;

而用遞迴去寫,**只有乙個if else判斷 ,相對**較少,而且容易理解;

對於比較熟悉的二分查詢來說

用迴圈寫:

public

static

intbinnary

(int

array,

int key)

while

(a<=b)

else

else}}

return-1

;}

而用遞迴去寫:

public

static

intbinnary1

(int

array,

int begin,

int end,

int key)

else

else}}

return-1

;}

兩者**量看起來差不多,我個人覺得 對於二分查詢來說,遞迴和迴圈思想都是一樣的,都是要用帶查詢的值去和陣列中間值去比較然後繼續找區間比較,遞迴比循壞看起來更複雜,和難以理解。

遞迴好處:**更簡潔清晰,可讀性更好

遞迴壞處:由於遞迴需要系統堆疊,所以空間消耗要比非遞迴**要大很多。而且,如果遞迴深度太大,可能系統撐不住。

棧如果溢位,異常資訊是什麼?

遞迴演算法及DFS搜尋的應用

遞迴演算法,說白了就是程式呼叫自身的程式設計技巧的一種演算法。它能更好的實現一種反覆執行的過程 呼叫自身的方式 能讓一些反覆迴圈的問題變得簡單化,使之更好的讓計算機運算出結果。遞迴需滿足2個條件 1 有反覆執行的過程 呼叫自身 2 有跳出反覆執行過程的條件 遞迴出口 一般來說,遞迴需要有邊界條件 遞...

Java之遞迴演算法及應用

1 什麼叫遞迴?遞迴就是無限呼叫自身的函式,每次呼叫會改動乙個關鍵變數,直到該變數達到邊界時,不再呼叫。即將大規模問題分解為小規模問題解決。2 遞迴演算法的應用 1 遞迴求和 1 2 3 100 public static int sumnum int n else public static vo...

遞迴的應用

遞迴是指函式 過程 子程式在執行過程中直接或間接的呼叫自身而產生的重入現象。在定義乙個過程或函式時出現呼叫本過程或本函式的成分,稱為遞迴。若呼叫自身,稱為直接遞迴。若過程 或函式p呼叫過程或函式q,而q又呼叫p,稱為間接遞迴。在以下三種情況下,需要用到遞迴的方法。1.定義是遞迴的 有些數學公式 數列...