Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 배열의 최소 및 최대 요소를 찾는 재귀 프로그램

<시간/>

입력으로 정수 배열 Arr[]이 제공됩니다. 목표는 재귀적 방법을 사용하여 배열 중에서 최대 및 최소 요소를 찾는 것입니다.

재귀를 사용하고 있으므로 length=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이면 minimum=arr[0]을 설정하고 minimum을 반환합니다.

  • 그렇지 않으면 minimum =minimum =minimum of arr[len] 또는 recforMin(arr,len-1)을 설정하고 반환합니다.

  • 마지막에 최소 요소가 반환됩니다.

  • 메인 내부에서 얻은 결과를 인쇄합니다.

최소값 찾기

  • 최대값 찾기

  • 배열 Arr[]을 입력으로 사용합니다.

  • recforMax(int ​​arr[], int len) 함수는 입력 배열과 그 길이를 취하고 재귀를 사용하여 배열에서 최대값을 반환합니다.

  • 정수 변수를 최대로 취하십시오.

  • 현재 인덱스 len이 1이면 maximum=arr[0]을 설정하고 최대값을 반환합니다.

  • 그렇지 않으면 최소값 =최대값(arr[len] 또는 recforMax(arr,len-1))을 설정하고 반환합니다.

  • 마지막에 최대 요소가 반환됩니다.

  • 메인 내부에서 얻은 결과를 인쇄합니다.

재귀를 사용하여 최소값 찾기

예시

#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