我對學校有這項任務,它希望我使用遞歸。我是遞歸的新手,我理解它,但我無法弄清楚爲什麼這種方法不能按照它的設想工作。這些都給了我,說明,這是我的代碼遞歸邏輯錯誤Java
// This method will be completed by the student!
// The student should implement the binary search algorithm using recursion. The
// method will originally be called by the GUI logic when the Search button is clicked.
public int binarySearch(Integer[] targetArray, int targetValue, int lowIndex, int highIndex){
if (lowIndex > highIndex)
return -1;
int midIndex = lowIndex + (highIndex - lowIndex)/2;
if (targetValue == targetArray[midIndex])
return midIndex;
if(targetArray[midIndex] > targetValue)
binarySearch(targetArray, targetValue, lowIndex, midIndex - 1);
else if(targetArray[midIndex] < targetValue)
binarySearch(targetArray, targetValue, midIndex + 1, highIndex);
return -1; // replace this with your recursive binary search code
}
程序會要求用戶在目標值進入。然後它將使用遞歸搜索數組來判斷目標值是否在數組中。該數組包含數字{1,3,5,6,8,9,10,12,14,15}。當我搜索數字5時會彈出一個消息框,並顯示「Number 5 not found!」但是當我將目標值設置爲8時,它會在數組中找到它
你可以提供一個測試用例,代碼不工作嗎? –
通過testcase你是指我在哪裏運行代碼,輸出是不正確的? –
是的。提供一個輸入樣例以及預期輸出和計算輸出。 –