Min max

#include <stdio.h>

void minmax(int a[], int i, int j, int *min, int *max, int *c)
{
    if (i == j)
  {
        *min = *max = a[i];
    } 
 else if (i == j - 1
  {
        if (a[i] < a[j])
   {
            *min = a[i];
            *max = a[j];
        } else 
  {
            *min = a[j];
            *max = a[i];
        }
        (*c)++;
    } 
 else 
 {
        int mid = (i + j) / 2;
        int min1, max1;
        minmax(a, i, mid, min, max, c);
        min1 = *min;
        max1 = *max;
        minmax(a, mid + 1, j, min, max, c);
        if (min1 < *min)
   {
            *min = min1;
        }
        if (max1 > *max)
  {
            *max = max1;
        }
        (*c)++;
    }
}

int main()
{
    int a[] = {10, 2, 3, 0};
    int size = sizeof(a) / sizeof(a[0]);
    int max;
    int min;
    int c = 0;
    minmax(a, 0, size - 1, &min, &max, &c);
    printf("\nMinimum number: %d", min);
    printf("\nMaximum number: %d", max);
    printf("\nComparison count: %d\n", c);

    return 0;
}

Comments

Popular posts from this blog

employee