>>> array = [4, 2, 6, 8, 1, 7, 8, 22, 14, 56, 27, 79, 23, 45, 14, 12] >>> median_of_3(array, 0, ((len(array) - 0) // 2) + 1, len(array) - 1) 12 >>> array = [13, 2, 6, 8, 1, 7, 8, 22, 14, 56, 27, 79, 23, 45, 14, 12] >>> median_of_3(array, 0, ((len(array) - 0) // 2) + 1, len(array
(
array: list, first_index: int, middle_index: int, last_index: int
)
| 80 | |
| 81 | |
| 82 | def median_of_3( |
| 83 | array: list, first_index: int, middle_index: int, last_index: int |
| 84 | ) -> int: |
| 85 | """ |
| 86 | >>> array = [4, 2, 6, 8, 1, 7, 8, 22, 14, 56, 27, 79, 23, 45, 14, 12] |
| 87 | >>> median_of_3(array, 0, ((len(array) - 0) // 2) + 1, len(array) - 1) |
| 88 | 12 |
| 89 | >>> array = [13, 2, 6, 8, 1, 7, 8, 22, 14, 56, 27, 79, 23, 45, 14, 12] |
| 90 | >>> median_of_3(array, 0, ((len(array) - 0) // 2) + 1, len(array) - 1) |
| 91 | 13 |
| 92 | >>> array = [4, 2, 6, 8, 1, 7, 8, 22, 15, 14, 27, 79, 23, 45, 14, 16] |
| 93 | >>> median_of_3(array, 0, ((len(array) - 0) // 2) + 1, len(array) - 1) |
| 94 | 14 |
| 95 | """ |
| 96 | if (array[first_index] > array[middle_index]) != ( |
| 97 | array[first_index] > array[last_index] |
| 98 | ): |
| 99 | return array[first_index] |
| 100 | elif (array[middle_index] > array[first_index]) != ( |
| 101 | array[middle_index] > array[last_index] |
| 102 | ): |
| 103 | return array[middle_index] |
| 104 | else: |
| 105 | return array[last_index] |
| 106 | |
| 107 | |
| 108 | def partition(array: list, low: int, high: int, pivot: int) -> int: |