So finden Sie den Mindest- und Höchstwert aus einem bestimmten Array mithilfe des Teile-und-Herrsche-Algorithmus

So finden Sie den Mindest- und Höchstwert aus einem bestimmten Array mithilfe des Teile-und-Herrsche-Algorithmus

Die Lösung zum Finden des Mindest- und Höchstwerts aus einem gegebenen Array mit dem Algorithmus zum Teilen und Erobern
ist unten angegeben:

#include<stdio.h>
static int min,max=0,arrr[100],mid,n;
minmax(int arr[],int low,int high)
{int i;
    if(high-low==1)//for n==2
    {
        if(arr[low]<arr[high])
        {
        min=arr[low];
        max=arr[high];
        arrr[0]=min;
        arrr[1]=max;
        }
        else
        {
            min=arr[high];
            max=arr[low];
            arrr[0]=min;
            arrr[1]=max;
        }
        return 0;
    }
    if(n==1)//n==1
    {
        arrr[0]=arr[high];
        arrr[1]=arr[high];
        return 0;
    }
    mid=low+high/2;
    if(high-low>1)
    {
        mid=low+high/2;
        minmax(arr,low,mid);
        minmax(arr,mid+1,high);
       
    }
}
int main()
{
    int i,j,sum=0,low,high;
    printf("Enter the number of elements: ");
    scanf("%d",&n);
    int arr[n];
    for(i=0;i<n;i++)
    {
        printf("Enter the element %d: ",i);
        scanf("%d",&arr[i]);
    } 
    low=0;//starting value of array
    high=n-1;//final value 
    minmax(arr,low,high);
    printf("nnMinimum element %d nnMaximum element %d ",arrr[0],arrr[1]);
    
}

Ich bekomme die richtigen Antworten für die ersten beiden Fälle, dh wenn n gleich 1 und n gleich 2 ist. Aber für den dritten Fall, wenn n größer als 2 ist, erhalte ich die ersten beiden Werte der Eingabe als Minimum und Maximum . arrr ist das Ausgabearray, das den Minimal- und den Maximalwert speichert.