Нужно Подсказки для разработки эффективного алгоритма, который принимает следующие входные данные и выдает следующий вывод.
Входные данные: два отсортированных массива целых чисел A и B, каждая из которых имеет длину n
Вывод: один отсортированный массив, состоящий из декартовых произведений массивов A и B.
For Example:
Input:
A is 1, 3, 5
B is 4, 8, 10
here n is 3.
Output:
4, 8, 10, 12, 20, 24, 30, 40, 50
Вот мои попытки решить эту проблему.
1) Учитывая, что выводравно n ^ 2, эффективный алгоритм не может быть лучше, чем сложность времени O (n ^ 2).
2) Сначала я попробовал простой, но неэффективный подход.Генерация декартовых произведений A и B. Это можно сделать за O (n ^ 2) временных сложностей.нам нужно хранить, чтобы мы могли сделать сортировку по нему.Поэтому O (n ^ 2) пространственная сложность тоже.Теперь мы сортируем n ^ 2 элементов, которые нельзя сделать лучше, чем O (n ^ 2logn), не делая никаких предположений на входе.
Наконец, у меня есть O (n ^ 2logn) времени и O (n ^2) алгоритм пространственной сложности.
Должен быть лучший алгоритм, потому что я не использовал отсортированный характер входных массивов.