mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-25 02:18:39 +00:00
Compare commits
3 Commits
d7437a22b6
...
d053352d95
Author | SHA1 | Date | |
---|---|---|---|
|
d053352d95 | ||
|
7f73cbd3f7 | ||
|
f12ae10b43 |
@ -28,22 +28,20 @@ def split_list(timings: list) -> tuple:
|
||||
|
||||
def split_workload(arr: list) -> tuple:
|
||||
if len(arr) == 0:
|
||||
result = ([], [], 0)
|
||||
elif len(arr) == 1:
|
||||
result = ([arr[0]], [], 1)
|
||||
return ([], [], 0)
|
||||
if len(arr) == 1:
|
||||
return ([arr[0]], [], 1)
|
||||
else:
|
||||
n = len(arr)
|
||||
smallest_diff = float("inf")
|
||||
all_nums_positive = [c >= 0 for c in arr]
|
||||
if False in all_nums_positive:
|
||||
raise ValueError("numbers can only be positive")
|
||||
if any(c < 0 for c in arr):
|
||||
raise ValueError("Numbers can only be non-negative")
|
||||
for i in range(1, 2**n - 1):
|
||||
indices = [j for j in range(n) if (i & (1 << j)) != 0]
|
||||
distributed_timings_1 = [arr[j] for j in indices]
|
||||
distributed_timings_2 = [arr[j] for j in range(n) if j not in indices]
|
||||
diff = abs(sum(distributed_timings_1) - sum(distributed_timings_2))
|
||||
if diff < smallest_diff:
|
||||
smallest_diff = diff
|
||||
smallest_diff = min(smallest_diff, diff)
|
||||
result = (
|
||||
distributed_timings_1,
|
||||
distributed_timings_2,
|
||||
|
Loading…
x
Reference in New Issue
Block a user