Skip to content

Commit e0e84c6

Browse files
committed
Improve the existing TimSort implementation
1 parent d76b385 commit e0e84c6

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

sorts/tim_sort.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ def insertion_sort(arr: list[T]) -> list[T]:
3333
>>> insertion_sort([3, 1, 2, 4])
3434
[1, 2, 3, 4]
3535
"""
36+
from typing import TypeVar
37+
38+
T = TypeVar("T")
39+
3640
for i in range(1, len(arr)):
3741
key = arr[i]
3842
j = binary_search(arr, key, 0, i - 1)
@@ -79,9 +83,12 @@ def tim_sort(arr: list[T]) -> list[T]:
7983
>>> tim_sort([]) # empty input
8084
[]
8185
"""
86+
from typing import TypeVar
87+
88+
T = TypeVar("T")
89+
8290
if not isinstance(arr, list):
8391
arr = list(arr)
84-
8592
if not arr:
8693
return []
8794

@@ -112,4 +119,4 @@ def tim_sort(arr: list[T]) -> list[T]:
112119
if __name__ == "__main__":
113120
import doctest
114121

115-
doctest.testmod()
122+
doctest.testmod()

0 commit comments

Comments
 (0)