Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define N 10
- #define M 11
- void swap(int *max, int *min)
- {
- if (*min > *max)
- {
- int temp = *max;
- *max = *min;
- *min = temp;
- }
- }
- void minmax(int *arr, int n, int *max, int *min)
- {
- int Lmax, Rmax, Lmin, Rmin;
- if (n == 0)
- {
- *min = *max = -1;
- return;
- }
- if (n == 1)
- {
- *min = *max = arr[0];
- return;
- }
- if (n == 2)
- {
- *max = arr[0];
- *min = arr[1];
- swap(max,min);
- return;
- }
- minmax(arr,n/2,&Lmax,&Lmin);
- minmax(arr+(n/2),(n/2)+(n%2),&Rmax,&Rmin);
- *max = (Lmax > Rmax)? Lmax : Rmax;
- *min = (Lmin < Rmin)? Lmin : Rmin;
- }
- void main()
- {
- int max,min;
- int arr1[N] = {3,1,17,9,4,2,27,21,7,10};
- int arr2[M] = {6,5,4,8,1,90,11,21,34,32,33};
- minmax(arr1,N,&max,&min);
- printf("max = %d, min = %d\n",max,min);
- minmax(arr2,M,&max,&min);
- printf("max = %d, min = %d\n",max,min);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement