Skip to content

Commit d8f539e

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 2e7649b commit d8f539e

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

Diff for: searches/median_of_medians.py

+25-16
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,39 @@
66
https://en.wikipedia.org/wiki/Median_of_medians
77
"""
88

9-
def MedianofFive(arr:list) -> int:
9+
10+
def MedianofFive(arr: list) -> int:
1011
"""
1112
Return the median of the input list
1213
:param arr: Array to find median of
1314
:return: median of arr
1415
"""
15-
arr=sorted(arr)
16-
return arr[len(arr)//2]
16+
arr = sorted(arr)
17+
return arr[len(arr) // 2]
18+
1719

18-
def MedianofMedians(arr:list) -> int:
20+
def MedianofMedians(arr: list) -> int:
1921
"""
2022
Return a pivot to partition data on by calculating
2123
Median of medians of input data
2224
:param arr: The data to be sorted (a list)
2325
:param k: The rank to be searched
2426
:return: element at rank k
2527
"""
26-
if len(arr) <= 5: return MedianofFive(arr)
28+
if len(arr) <= 5:
29+
return MedianofFive(arr)
2730
medians = []
28-
i=0
29-
while i<len(arr):
30-
if (i + 4) <= len(arr): medians.append(MedianofFive(arr[i:].copy()))
31-
else: medians.append(MedianofFive(arr[i:i+5].copy()))
32-
i+=5
31+
i = 0
32+
while i < len(arr):
33+
if (i + 4) <= len(arr):
34+
medians.append(MedianofFive(arr[i:].copy()))
35+
else:
36+
medians.append(MedianofFive(arr[i : i + 5].copy()))
37+
i += 5
3338
return MedianofMedians(medians)
3439

35-
def QuickSelect(arr:list, k:int) -> int:
40+
41+
def QuickSelect(arr: list, k: int) -> int:
3642
"""
3743
>>> QuickSelect([2, 4, 5, 7, 899, 54, 32], 5)
3844
32
@@ -53,7 +59,7 @@ def QuickSelect(arr:list, k:int) -> int:
5359
"""
5460

5561
# Invalid Input
56-
if k>len(arr):
62+
if k > len(arr):
5763
return None
5864

5965
# x is the estimated pivot by median of medians algorithm
@@ -72,7 +78,10 @@ def QuickSelect(arr:list, k:int) -> int:
7278
else:
7379
right.append(arr[i])
7480
rankX = len(left) + 1
75-
if(rankX==k): answer = x
76-
elif rankX>k: answer = QuickSelect(left,k)
77-
elif rankX<k: answer = QuickSelect(right,k-rankX)
78-
return answer;
81+
if rankX == k:
82+
answer = x
83+
elif rankX > k:
84+
answer = QuickSelect(left, k)
85+
elif rankX < k:
86+
answer = QuickSelect(right, k - rankX)
87+
return answer

0 commit comments

Comments
 (0)