MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / median_of_medians

Function median_of_medians

searches/median_of_medians.py:31–58  ·  view source on GitHub ↗

Return a pivot to partition data on by calculating Median of medians of input data :param arr: The data to be checked (a list) :return: median of medians of input array >>> median_of_medians([2, 4, 5, 7, 899, 54, 32]) 54 >>> median_of_medians([5, 7, 899, 54, 32]) 32

(arr: list)

Source from the content-addressed store, hash-verified

29
30
31def median_of_medians(arr: list) -> int:
32 """
33 Return a pivot to partition data on by calculating
34 Median of medians of input data
35 :param arr: The data to be checked (a list)
36 :return: median of medians of input array
37
38 >>> median_of_medians([2, 4, 5, 7, 899, 54, 32])
39 54
40 >>> median_of_medians([5, 7, 899, 54, 32])
41 32
42 >>> median_of_medians([5, 4, 3, 2])
43 4
44 >>> median_of_medians([3, 5, 7, 10, 2, 12])
45 12
46 """
47
48 if len(arr) <= 5:
49 return median_of_five(arr)
50 medians = []
51 i = 0
52 while i < len(arr):
53 if (i + 4) <= len(arr):
54 medians.append(median_of_five(arr[i:].copy()))
55 else:
56 medians.append(median_of_five(arr[i : i + 5].copy()))
57 i += 5
58 return median_of_medians(medians)
59
60
61def quick_select(arr: list, target: int) -> int:

Callers 1

quick_selectFunction · 0.85

Calls 3

median_of_fiveFunction · 0.85
copyMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected