Given an array of sizes n and we need to find the maximum and minimum number present in the given array.
Example:
Input: arr[] = {12, 9, 2, 7, 3, 10} Output:
Maximum: 12Minimum: 2 Input: arr[] = {5, 9, -2, 23, 7, 10} Output:
Maximum: 23Minimum: -2Approach 1: Brute Force approach.
In this approach, we traverse the entire array and pick each element one by one to compare the smallest and largest element.
Following steps to solve the problem:
1. Declare two variables max_value and min_value and initialize max_value with 2. INT_MIN and min_value with INT_MAX.
3. Traverse the array and
- Update the value of max_value if you found any value greater than the current max_value.
- Update the value of min_value if you found any value greater than the current min_value.
4. Print maximum and minimum values.
Below is the C++ code Implementation:
//C++ code to find the maximum and minimum value of an array #include<iostream> using namespace std; //function to print maximum and minimum value void largeSmall(int arr[], int n){ int max_value = INT_MIN; int min_value = INT_MAX; for(int i = 0; i < n; i++){ //checking max value if(arr[i] > max_value) max_value = arr[i]; //checking min value if(arr[i] < min_value) min_value = arr[i]; } cout<<"Maximum: "<<max_value<<endl; cout<<"Minimum: "<<min_value<<endl; } int main(){ int arr[] = {12, 9, -2, 7, 3, 10}; //size of the given array int n = sizeof(arr)/sizeof(arr[0]); //function call largeSmall(arr, n); return 0; }
Maximum: 12 Minimum: -2
- Time Complexity: O(n)
- Space Complexity: O(1)
Approach 2: Using Recursion.
1. In the recursive approach, we made two different function call for maximum and minimum.
if(n == 1)return arr[0]
2. This is our base case which indicates that when you traverse the complete array and only one element is left in the array then we can simply return arr[0].
3. Recursively we are reducing the size of the array in each recursive call (n-1) and trying to store the maximum so far.
Below is the C++ code Implementation:
//C++ Recursive code to find the maximum and minimum value of an array #include<iostream> using namespace std; //recursive function to return maximum value int largestNum(int arr[], int n){ //base case when we traverse the complete array if(n == 1) return arr[0]; return max(arr[n-1], largestNum(arr, n-1)); } //recursive function to return the minimum value int smallestNum(int arr[], int n){ //base case when we traverse the complete array if(n == 1) return arr[0]; return min(arr[n-1], smallestNum(arr, n-1)); } int main(){ int arr[] = {12, 9, -2, 7, 3, 10}; //size of the given array int n = sizeof(arr)/sizeof(arr[0]); //function call cout<<"Maximum: "<<largestNum(arr, n)<<endl; cout<<"Minimum: "<<smallestNum(arr, n)<<endl; return 0; }
Output:
Maximum: 12 Minimum: -2
- Time Complexity: O(n)
- Space Complexity: O(1)
Approach 3: Using Library Function.
In most programming languages there are several built-in functions to use for finding the maximum and minimum of an array. In C++ we have max_element() and min_element() library function.
Below is the C++ code Implementation:
//C++ code to find maximum and minimum value of an array #include<bits/stdc++.h> using namespace std; //library function to return maximum value int largestNum(int arr[], int n){ return *max_element(arr, arr+n); } //library function to return minimum value int smallestNum(int arr[], int n){ return *min_element(arr, arr+n); } int main(){ int arr[] = {12, 9, -2, 7, 3, 10}; //size of given array int n = sizeof(arr)/sizeof(arr[0]); //function call cout<<"Maximum: "<<largestNum(arr, n)<<endl; cout<<"Minimum: "<<smallestNum(arr, n)<<endl; return 0; }
Output:
Maximum: 12 Minimum: -2
- Time Complexity: O(n)
- Space Complexity: O(1)
Also see:
No comments
Post a Comment