(lst: list[Any], item: Any, start: int, end: int)
| 2 | |
| 3 | |
| 4 | def binary_search(lst: list[Any], item: Any, start: int, end: int) -> int: |
| 5 | if start == end: |
| 6 | return start if lst[start] > item else start + 1 |
| 7 | if start > end: |
| 8 | return start |
| 9 | |
| 10 | mid = (start + end) // 2 |
| 11 | if lst[mid] < item: |
| 12 | return binary_search(lst, item, mid + 1, end) |
| 13 | elif lst[mid] > item: |
| 14 | return binary_search(lst, item, start, mid - 1) |
| 15 | else: |
| 16 | return mid |
| 17 | |
| 18 | |
| 19 | def insertion_sort(lst: list[Any]) -> list[Any]: |