Min Max Algorithm using Divide and Conquer
Algorithm MaxMin(i,j,max,min)
{
if (i = j) then max:=min:=a[i]; elseif
(i = j-1) then
{
if (a[i]<a[j])then
{
max :=a[j];min :=a[i];
}
else
{
max:=a[i];min:=a[j];
}
}
else
{
mid:=[(i+j)/2]; MaxMin(i,mid,max,min); MaxMin(mid+l,j,maxl,minl); if (max<maxl) then max:=maxl; if (min >mini)then min:=min1;
}
}
Source Code:
def MaxMin(i, j, max, min, a): if i == j:
max = min = a[i] elif i == j -
1:
if a[i] < a[j]: max
= a[j] min = a[i]
else:
max = a[i] min = a[j]
else:
mid = (i+j) // 2
maxl, minl = MaxMin(i, mid, max, min,a) maxr, minr=MaxMin(mid+1,j,max,min,a)
if max < maxr:
max = maxr
if min > minr:
min = minr
if max<maxl:
max=max1
if min >minl:
min =minl
return max,min
a = [3,
1, 4, 2, 9, 8, 5,
6, 7, 3]
max_val, min_val = MaxMin(0, len(a)-1, a[0], a[0], a) print("Input array:", a)
print("Max value:", max_val) print("Min value:", min_val)
Comments
Post a Comment