如何使用遞歸演算法實現Java二分法查找

WBOY
發布: 2024-01-12 20:06:05
轉載
1337 人瀏覽過

java二分法查找的遞歸演算法怎麼實作

public class 二分法遞迴尋找 {

public static void main(String[] args)是Java程式的入口點,是程式執行的起始位置。在這個方法中,可以編寫程式的主要邏輯和功能。這個方法必須按照特定的格式定義,才能被Java虛擬機器呼叫執行。在main方法的參數清單中,args是字串數組,可以用來接收命令列參數。透過在main方法中編寫程式碼,我們可以實現各種各樣的功能,例如列印輸出、計算、循環、條件判斷等 {

//定義數組,注意,二分查找數組必須是有序的數組!

int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 };是一個整數陣列的宣告和初始化語句,其中包含9個元素。每個元素的值分別是1, 3, 5, 7, 9, 11, 13, 15, 17。這樣我們就建立了一個名為arr的整數數組,並且給了它初始值。在後續的程式中,我們可以使用這個陣列來進行各種操作,例如尋找、排序、計

//接受查找後的回傳值:索引值,如果沒有則是-1;

//測試尋找元素:9

int a = binarySearch(arr, 9, 0, arr.length - 1);

System.out.println("被找出數字的索引位置是:" a);

}

//參數清單依序為:被尋找的數組,尋找的數字,頭索引,尾索引!

public static int binary(int[] arr, int key, int start, int end) // 遞迴

{

//每次進來創建,中間索引值!

int mid = (star end) / 2;

如果待查找的數小於起始索引或大於結束索引,或起始索引大於結束索引,則表示不存在該數,傳回-1。

if (key arr[end] || start > end) {

return -1;

}

//如果中間值小於被尋找的數,則重新定義頭索引移至中間 1的位置,這樣可以篩選掉一半的數字!

if (arr[mid]

//開始遞迴!

return binary(arr, key, mid 1, end); // 在陣列的後半部繼續進行二分查找

//否則,如果中間值大於被尋找的數,則將尾索引重新移至中間-1的位置,這樣可以篩選掉一半的數字!

} else if (arr[mid] > key) {

//開始遞迴!

return binary(arr, key, start, mid - 1);

} else {

//否者就是找到了,回傳該索引!

return mid;

}

}

}

如何使用遞歸演算法實現Java二分法查找

#

高手程式設計 JAVA語言用遞歸演算法和 1 2 3 4 100或是11 13 15

第一題:

public class CalSum {

public static void main(String[] args)是Java程式的入口點,是程式執行的起始位置。在這個方法中,可以編寫程式的主要邏輯和功能。這個方法必須按照特定的格式定義,才能被Java虛擬機器呼叫執行。在main方法的參數清單中,args是字串數組,可以用來接收命令列參數。透過在main方法中編寫程式碼,我們可以實現各種各樣的功能,例如列印輸出、計算、循環、條件判斷等

{

CalSum calSum = new CalSum();

int result = calSum.calculate(100); // 呼叫calSum物件的calculate方法,傳入參數100,並將結果賦值給result變數。

System.out.println("1 2 3 ... 100的總和等於" result);

}

public int calculate(int number)

{

int result = 0;

if(number == 1)

{

result = 1;

}

else

{

result = number calculate(number - 1);的結果是將目前的number與number-1的回傳值相加。這個表達式可以用遞歸的方式來計算,每次遞歸呼叫時,number的值會減1,直到number等於1時停止遞歸。遞歸呼叫的回傳值會不斷累加到最終的結果中。這樣,我們可以得到一個數列的和。

}

return result;

}

}

java裡遞歸和迭代分別是什麼演算法啊

迭代是普通的循環。

例:從1加到10

int sum=0

for(int i=0;i

sum=sum i;

}

遞歸是指一個函數直接或間接呼叫自己。

好比:從前有個廟廟裡有個大和尚和小和尚,大和尚叫小和尚講故事,小和尚說從前有個廟廟裡有個大和尚和小和尚,小和尚叫大和尚講故事,大和尚接著說從前有個廟廟裡有個大和尚和小和尚,他們每天一起修行學習佛法。

遞迴的特性:

必有三個條件:

1. 間接或直接呼叫自己。

2. 進行遊戲時,一定要設定退出的條件,例如大和尚口乾了不再聽故事。如果沒有設定退出條件,遊戲可能會陷入死循環。

3。要有邏輯體(想要做的事);

public int sum(int x){

if(x

return x;

}

return x sum(x-1);

}

int s=10;

int total=sum(s);

該範例中,sum函數總是呼叫自己,return x sum(x-1);

sum有退出條件, x

最後的結果是把 10 9 8 7 ... 1 回傳

在許多情況下,迭代和遞歸都可以實現相同的功能,但是有些功能迭代無法完成。此外,遞歸的程式碼更簡潔,熟練使用遞歸可以提高程式碼品質。

以上是如何使用遞歸演算法實現Java二分法查找的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:docexcel.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板