def median(arr):
l = len(arr)
mid = int(l / 2)
if l % 2 == 0:
return (arr[mid - 1] + arr[mid]) / 2
else:
return arr[mid]
def findMedianForArrays(arr1, arr2):
n = len(arr1) if len(arr1) == len(arr2) else 0
if n <= 0:
return -1
if n == 1:
return (arr1[0] + arr2[0]) / 2
if n == 2:
return (max(arr1[0], arr2[0]) + min(arr1[1], arr2[1])) / 2
m1 = median(arr1)
m2 = median(arr2)
if m1 == m2:
return m1
mid = int(n / 2)
if m1 < m2:
return findMedianForArrays(arr1[mid:], arr2[:mid + 1])
else:
return findMedianForArrays(arr1[:mid + 1], arr2[mid:])
arr1 = [1, 12, 15, 26, 38]
arr2 = [2, 13, 17, 30, 45]
findMedianForArrays(arr1, arr2)
16.0