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

Popular posts from this blog

2. Create 3 private networks namely N1, N2 and N3, Send the data from N1 to N2. If the packets are transferring from N3, it shouldn't accept the packets. Accordingly develop the security features.Create 3 private networks namely N1, N2 and N3, Send the data from N1 to N2. If the packets are transferring from N3, it shouldn't accept the packets. Accordingly develop the security features.

Kruskal algorithm using greedy technique.