C++中使用遞迴程式查詢陣列的最小值和最大值
我們以整數陣列Arr[]作為輸入。目標是使用遞迴方法查詢陣列中的最大和最小元素。
由於我們使用遞迴,我們將遍歷整個陣列直到長度為1,然後返回A[0]作為基本情況。否則,將當前元素與當前最小值或最大值進行比較,並透過遞迴更新後續元素的值。
讓我們看看這個的各種輸入輸出場景:
輸入 - Arr= {12,67,99,76,32};
輸出 - 陣列中的最大值:99
說明 - 在所有元素中,99 是最大的。
輸入 - Arr= {1,0,-99,9,3};
輸出 - 陣列中的最小值:-99
說明 - 在所有元素中,-99是最小的。
下面程式中使用的方法如下:
查詢最小值
將陣列Arr[]作為輸入。
函式recforMin(int arr[], int len)接收輸入陣列及其長度,並使用遞迴返回陣列中的最小值。
獲取整數變數minimum。
如果當前索引len為1,則設定minimum=arr[0]並返回minimum。
否則,設定minimum = arr[len] 或 recforMin(arr,len-1) 的最小值,並返回它。
最後將返回最小元素。
在main函式內部列印結果。
查詢最小值
查詢最大值
將陣列Arr[]作為輸入。
函式recforMax(int arr[], int len)接收輸入陣列及其長度,並使用遞迴返回陣列中的最大值。
獲取整數變數maximum。
如果當前索引len為1,則設定maximum=arr[0]並返回maximum。
否則,設定maximum = arr[len] 或 recforMax(arr,len-1) 的最大值,並返回它。
最後將返回最大元素。
在main函式內部列印結果。
使用遞迴查詢最小值
示例
#include <iostream> using namespace std; int recforMin(int arr[], int len){ int minimum; if (len == 1){ minimum=arr[0]; return minimum; } else{ return minimum=arr[len]<recforMin(arr,len-1)?arr[len]:recforMin(arr,len-1); } } int main(){ int Arr[] = {-89,98,76,32,21,35,100}; int length = sizeof(Arr)/sizeof(Arr[0]); cout <<"Minimum in the array :"<<recforMin(Arr, length); return 0; }
輸出
如果我們執行上面的程式碼,它將生成以下輸出:
Minimum in the array :-89
使用遞迴查詢最小值
示例
#include <iostream> using namespace std; int recforMax(int arr[], int len){ int maximum; if (len == 1){ maximum=arr[0]; return maximum; } else{ return maximum=arr[len]>recforMax(arr,len-1)?arr[len]:recforMax(arr,len-1); } } int main(){ int Arr[] = {-89,98,76,32,21,35,100}; int length = sizeof(Arr)/sizeof(Arr[0]); cout <<"Maximum in the array :"<<recforMax(Arr, length); return 0; }
輸出
如果我們執行上面的程式碼,它將生成以下輸出:
Maximum in the array :-100
廣告