Chúng tôi được cung cấp một mảng số nguyên Arr [] làm đầu vào. Mục đích là để tìm các phần tử tối đa và tối thiểu trong mảng bằng phương pháp đệ quy.
Vì chúng ta đang sử dụng đệ quy, chúng ta sẽ duyệt qua toàn bộ mảng cho đến khi đạt độ dài =1 rồi trả về A [0] tạo thành trường hợp cơ sở. Khác so sánh phần tử hiện tại với phần tử tối thiểu hoặc tối đa hiện tại và cập nhật giá trị của nó bằng cách đệ quy cho các phần tử sau này.
Hãy để chúng tôi xem các kịch bản đầu ra đầu vào khác nhau cho việc này -
Đầu vào - Arr ={12,67,99,76,32};
Đầu ra - Tối đa trong mảng:99
Giải thích - Trong số tất cả các phần tử, 99 là tối đa trong số đó.
Đầu vào - Arr ={1,0, -99,9,3};
Đầu ra - Tối thiểu trong mảng:-99
Giải thích - Trong số tất cả các phần tử -99 là tối thiểu trong số đó.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
Để tìm Giá trị tối thiểu
-
Lấy mảng Arr [] làm đầu vào.
-
Hàm recforMin (int arr [], int len) nhận đầu vào mảng và độ dài của nó và trả về giá trị tối thiểu trong mảng bằng cách sử dụng đệ quy.
-
Lấy biến số nguyên tối thiểu
-
Nếu chỉ số len hiện tại là 1 thì đặt giá trị tối thiểu =arr [0] và trả về giá trị tối thiểu.
-
Còn lại, đặt tối thiểu =tối thiểu của arr [len] hoặc recforMin (arr, len-1) và trả về.
-
Cuối cùng, phần tử tối thiểu sẽ được trả về.
-
In kết quả nhận được bên trong main.
Để tìm Giá trị tối thiểu
-
Để tìm kiếm Tối đa
-
Lấy mảng Arr [] làm đầu vào.
-
Hàm recforMax (int arr [], int len) nhận đầu vào mảng và độ dài của nó và trả về giá trị lớn nhất trong mảng bằng cách sử dụng đệ quy.
-
Lấy giá trị tối đa của biến số nguyên.
-
Nếu chỉ mục hiện tại len là 1 thì đặt max =arr [0] và trả về giá trị tối đa.
-
Còn lại, đặt tối thiểu =tối đa của arr [len] hoặc recforMax (arr, len-1) và trả về.
-
Cuối cùng, phần tử tối đa sẽ được trả về.
-
In kết quả nhận được bên trong main.
Tìm tối thiểu bằng cách sử dụng đệ quy
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau
Minimum in the array :-89
Tìm tối thiểu bằng cách sử dụng đệ quy
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau
Maximum in the array :-100