Как ускорить выполнение сортировки и нахождение медианы массива

Задача состоит в том, чтобы найти медиану из списка массива.

Мой код успевает обработать от 128 до 132 тестов за 12000 ms. Недотягивая до успешного завершения задачи.

Как ускорить выполнение программы, чтобы за отведенное время выполнились все тесты

  • 50 небольших тестов: 5 массивов, каждый из которых содержит до 20 элементов
  • 50 средних тестов: 10 массивов, каждый из которых содержит до 1000 элементов
  • 50 больших тестов: до 15 массивов, каждый из которых содержит до 2 000 000 элементов

мой код

def median_from_n_arrays(arrays):
    merged = []
    for sublist in arrays:
        merged.extend(sublist)
    merged.sort()
    
    length = len(merged)
    if length % 2 != 0:
        return merged[length // 2]
    else:
        return (merged[length // 2 - 1] + merged[length // 2]) / 2
  • Средние тесты: 10 массивов, каждый из которых содержит до 1000 элементов. В количестве 50 штук - выполняются за 6.6 мс.
  • Лёгкие тесты: 5 массивов, каждый из которых содержит до 20 элементов. В количестве 50 штук - выполняются за 71.15 мс.

По вычислению 1 большой тест (До 15 массивов, каждый из которых содержит до 2 000 000 элементов) занимает 518.35 мс


Ответы (0 шт):