เราได้รับอาร์เรย์จำนวนเต็ม 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) รับอาร์เรย์อินพุตและความยาวและส่งคืนค่าต่ำสุดในอาร์เรย์โดยใช้การเรียกซ้ำ
-
ใช้ตัวแปรจำนวนเต็มขั้นต่ำ
-
หากค่า len ดัชนีปัจจุบันเป็น 1 ให้ตั้งค่า maximum=arr[0] และคืนค่าต่ำสุด
-
อื่นตั้งค่าขั้นต่ำ =ขั้นต่ำของ arr[len] หรือ recforMin(arr,len-1) แล้วส่งคืน
-
ในตอนท้ายองค์ประกอบขั้นต่ำจะถูกส่งคืน
-
พิมพ์ผลลัพธ์ที่ได้รับภายใน main.
เพื่อหาขั้นต่ำ
-
เพื่อหาค่าสูงสุด
-
รับอาร์เรย์ Arr[] เป็นอินพุต
-
ฟังก์ชัน recforMax(int arr[], int len) รับอาร์เรย์อินพุตและความยาวและส่งกลับค่าสูงสุดในอาร์เรย์โดยใช้การเรียกซ้ำ
-
หาค่าสูงสุดของตัวแปรจำนวนเต็ม
-
หากเลนดัชนีปัจจุบันเป็น 1 ให้ตั้งค่า maximum=arr[0] และคืนค่าสูงสุด
-
อื่นตั้งค่าขั้นต่ำ =สูงสุดของ 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