เราได้รับอาร์เรย์จำนวนเต็ม 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