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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP