Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมแบบเรียกซ้ำเพื่อค้นหาองค์ประกอบขั้นต่ำและสูงสุดของอาร์เรย์ใน 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) รับอาร์เรย์อินพุตและความยาวและส่งคืนค่าต่ำสุดในอาร์เรย์โดยใช้การเรียกซ้ำ

  • ใช้ตัวแปรจำนวนเต็มขั้นต่ำ

  • หากค่า 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