add working recursive merge algorithm

This commit is contained in:
Pavel Patsey
2025-01-19 00:42:13 +03:00
parent c5e20446be
commit 1d34eb92bd
+3 -1
View File
@@ -1,6 +1,9 @@
import cProfile import cProfile
import sys
from collections import defaultdict from collections import defaultdict
sys.setrecursionlimit(10_000)
Node = tuple[int, int, int, int] Node = tuple[int, int, int, int]
@@ -173,7 +176,6 @@ def merge_nodes_recursion(nodes: list[Node], required_len: int) -> list[Node]:
return nodes return nodes
groups = make_groups(nodes) groups = make_groups(nodes)
neighbours, singles = find_neighbours_singles(groups) neighbours, singles = find_neighbours_singles(groups)
print(f"{len(nodes)=} {len(singles)=} {len(neighbours)=}")
if neighbours: if neighbours:
new_nodes = merge_neighbors(nodes, neighbours) new_nodes = merge_neighbors(nodes, neighbours)
return merge_nodes_recursion(new_nodes, required_len) return merge_nodes_recursion(new_nodes, required_len)