Using numpy
import numpy
arr = numpy.array([1,2,5,7,2,6,8])
max_element= numpy.max(arr)
min_element = numpy.min(arr)
print(max_element)
print(min_element)
Using Comparisons
class pair:
def __init__(self):
self.min = 0
self.max = 0
def getMinMax(arr: list, n : int) -> pair:
minmax = pair()
if n == 1:
minmax.max = arr[0]
minmax.min = arr[0]
return minmax
if arr[0] > arr[1]:
minmax.max = arr[0]
minmax.min = arr[1]
else:
minmax.max = arr[1]
minmax.min = arr[0]
for i in range(2,n):
if arr[i] > minmax.max:
minmax.max = arr[i]
elif arr[i] < minmax.min:
minmax.min = arr[i]
return minmax
if __name__ == "__main__":
arr = [ 100,11,22,1,330,2000]
arr_size = 6
minmax = getMinMax(arr,arr_size)
print(minmax.min)
print(minmax.max)
Tournament method
def getMinMax(low,high,arr):
arr_max = arr[low]
arr_min = arr[low]
if low == high:
arr_max = arr[low]
arr_min = arr[low]
return(arr_max,arr_min)
elif high == low + 1:
if arr[low] > arr[high]:
arr_max = arr[low]
arr_min = arr[high]
else:
arr_max = arr[high]
arr_min = arr[low]
return(arr_max,arr_min)
else:
mid = int((low+high)/2)
arr_max1, arr_min1 = getMinMax(low,mid,arr)
arr_max2, arr_min2 = getMinMax(mid+1,high,arr)
return(max(arr_max1,arr_max2), min(arr_min1,arr_min2))
arr = [ 100,11,22,1,330,2000]
high = len(arr) -1
low = 0
arr_max , arr_min = getMinMax(low,high,arr)
print(arr_min)
print(arr_max)
Using Compare in pairs
def getMinMax(arr):
n = len(arr)
if(n%2 == 0):
mx = max(arr[0],arr[1])
mn = min(arr[0],arr[1])
i = 2
else:
mx = mn = arr[0]
i =1
while(i<n-1):
if arr[i] < arr[i+1]:
mx= max(mx,arr[i+1])
mn = min(mn,arr[i])
else:
mx= max(mx,arr[i])
mn = min(mn,arr[i+1])
i+=2
return(mx,mn)
if __name__ == "__main__":
arr = [100,11,223,1,223,4444]
mx,mn = getMinMax(arr)
print(mx)
print(mn)