Skip to main content

Divide and conquer min max

        Divide and conquer min max

 #include<stdio.h>

#include<stdio.h>

int max, min;

int a[100];

void maxmin(int i, int j)

{


 int max1, min1, mid;

 if(i==j)

 {

  max = min = a[i];

 }

 else

 {

  if(i == j-1)

  {

   if(a[i] >a[j])

   {

    max = a[i];

    min = a[j];

   }

   else

   {

    max = a[j];

    min = a[i];

   }

  }

  else

  {

   mid = (i+j)/2;

   maxmin(i, mid);

   max1 = max; min1 = min;

   maxmin(mid+1, j);

   if(max <max1)

    max = max1;

   if(min > min1)

    min = min1;

  }

 }

}

int main ()

{

 int i, num;

 printf ("\nEnter the total number of numbers : ");

 scanf ("%d",&num);

 printf ("Enter the numbers : \n");

 for (i=1;i<=num;i++)

  scanf ("%d",&a[i]);


 max = a[0];

 min = a[0];

 maxmin(1, num);

 printf ("Minimum element in an array : %d\n", min);

 printf ("Maximum element in an array : %d\n", max);

 return 0;

}


Comments

Popular posts from this blog

C program to count total number of notes in given amount

 #include <iostream> using namespace std; int main() {     // 500,100,50,20,10,5,2,1     int n;     int count1,count2,count3,count4,count5,count6,count7,count8;     count1=count2=count3=count4=count5=count6=count7=count8=0;     cin>>n;         if(n>=500){           count1=n/500;           n=n%500;         }         if(n>=100){             count2=n/100;             n=n%100;         }         if(n>=50){             count3=n/50;       ...

How to Write Merge Sort in C

                    How to Write Merge Sort in C #include<stdio.h> /// Merge Sort void merge(int arr[],int l,int m,int r); void merge_sort(int arr[],int l,int r); void print_arr(int arr[],int size); void merge_sort(int arr[],int l,int r){     if(l<r){         int m=(l+r)/2;         merge_sort(arr,l,m);         merge_sort(arr,m+1,r);         merge(arr,l,m,r);     } } void merge(int arr[],int l,int m,int r){     int i,j,k;     int n1=m-l+1;     int n2=r-m;     int L[n1];     int R[n2];     for(int i=0;i<n1;i++){         L[i]=arr[l+i];     }     for(int j=0;j<n2;j++){         R[j]=arr[m+1+j];     }     i=0;     j=0;     k=l;     while(i<n1 &...