Skip to content

Commit 6da2354

Browse files
authored
Merge pull request #89 from pomier/pomier/sort_once
Sort only once intervals during initialization
2 parents ffb2b16 + 19cac3c commit 6da2354

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

intervaltree/node.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,22 @@ def from_interval(cls, interval):
5858

5959
@classmethod
6060
def from_intervals(cls, intervals):
61+
"""
62+
:rtype : Node
63+
"""
64+
if not intervals:
65+
return None
66+
return Node.from_sorted_intervals(sorted(intervals))
67+
68+
@classmethod
69+
def from_sorted_intervals(cls, intervals):
6170
"""
6271
:rtype : Node
6372
"""
6473
if not intervals:
6574
return None
6675
node = Node()
67-
node = node.init_from_sorted(sorted(intervals))
76+
node = node.init_from_sorted(intervals)
6877
return node
6978

7079
def init_from_sorted(self, intervals):
@@ -82,8 +91,8 @@ def init_from_sorted(self, intervals):
8291
s_right.append(k)
8392
else:
8493
self.s_center.add(k)
85-
self.left_node = Node.from_intervals(s_left)
86-
self.right_node = Node.from_intervals(s_right)
94+
self.left_node = Node.from_sorted_intervals(s_left)
95+
self.right_node = Node.from_sorted_intervals(s_right)
8796
return self.rotate()
8897

8998
def center_hit(self, interval):

0 commit comments

Comments
 (0)