def insertionSort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 and key < arr[j]: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = keyarr = [1,9,6,5,3,46]insertionSort(arr)for i in range(len(arr)): print("%d" % arr[i])def harfSearch(array, key, low, high): mid = int((low+high)/2) if key == array[mid]: return array[mid] if low > high: return False if key < array[mid]: return harfSearch(array, key, low, mid-1) if key > array[mid]: return harfSearch(array, key, mid+1, high)if __name__ == "__main__": array = [4, 13, 9, 6, 5, 55, 65, 76, 97] ret = harfSearch(array, 76, 0, len(array)-1) print(ret) def k_small(self, matrix: List[List[int]], k: int) -> int: def search(mid, n): i, j = n - 1, 0 count = 0 while i >= 0 and j < n: if matrix[i][j] <= mid: count += (i + 1) j += 1 else: i -= 1 return count >= k n = len(matrix) left, right = matrix[0][0], matrix[n - 1][n - 1] while left < right: mid = left + (right - left) // 2 if search(mid, n): right = mid else: left = mid + 1 return left