-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfindingMaxMinRecursively.cpp
More file actions
37 lines (31 loc) · 1012 Bytes
/
findingMaxMinRecursively.cpp
File metadata and controls
37 lines (31 loc) · 1012 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
using namespace std;
void MinMax(int &minimum,int &maximum,int start,int finish,int arr[]){
if(start == finish) minimum = maximum = arr[start];
else if(start+1 == finish) {
if(arr[start]>arr[finish]) minimum = arr[finish],maximum = arr[start];
else minimum = arr[start],maximum = arr[finish];
}
else{
int mid = finish/2;
int min1,max1,min2,max2;
MinMax(min1,max1,start,mid,arr);
MinMax(min2,max2,mid+1,finish,arr);
if(min1 < min2) minimum = min1;
else minimum = min2;
if(max1 > max2) maximum = max1;
else maximum = max2;
}
}
int main(){
int n;
printf("Give the number of element: ");
scanf("%d",&n);
int arr[n+5];
printf("Give the element of array: ");
for(int i=0;i<n;i++) scanf("%d",&arr[i]);
int minimumValue,maximumValue;
MinMax(minimumValue,maximumValue,0,n-1,arr);
printf("Min = %d, Max = %d\n",minimumValue,maximumValue);
return 0;
}