Objective: C program to find out maximum and minimum using the divide and conquer method
Concept: The problem is to find the maximum and minimum number using the divide and conquer technique.
Source code: #include<stdio.h> #include<stdlib.h> int main() { int i,j,a[100],max=0,min=1000,mid,n,max1,max2,min1,min2; printf("enter the size of the array"); scanf("%d",&n); printf("enter the elements of the array"); for(i=0;i<n;i++)< span=""> { scanf("%d",&a[i]); } j=n-1; int p=0; if(p==j) { max=min=a[p];//wen der is only one element in array printf("max is:%d and min is :%d",max,min); } else if(p==j-1) { if(a[p]<a[j])< span=""> { max=a[j]; min=a[p]; } else { max=a[p]; min=a[j]; } printf("max is:%d and min is :%d",max,min); } else { mid=(int)((p+j)/2); for(i=0;i<mid;i++)< span=""> { if(a[i]>max) { max=a[i]; } if(a[i]<min)< span=""> { min=a[i]; } } max1=max; min1=min; printf("\nmax1 is :%d\n",max1); printf("\n min1 is :%d\n",min1); max=0; min=1000; for(i=mid;i<n;i++)< span=""> { if(a[i]>max) { max=a[i]; } if(a[i]<min)< span=""> { min=a[i]; } } max2=max; min2=min; printf("\nmax2 is :%d\n",max2); printf("\n min2 is :%d\n",min2); if(max1<max2)< span=""> { max=max2; } else max=max1; if(min1<min2)< span=""> { min=min1; } else { min=min2; } printf("\nmaximum is:%d\n",max); printf("\n minimun is:%d\n",min); } getch(); return 0; }
OUTPUT