Нужна Подсказки для разработки эффективного алгоритма, который принимает следующий вход и выплевывает следующий вывод.эффективное сортированное декартово произведение 2 отсортированного массива целых чисел
Входной сигнал: два отсортированных массива целых чисел А и В, каждый из длины п
Выход: Один отсортированного массива, который состоит из декартово произведение массивов А и В.
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) алгоритм пространственной сложности.
Должен быть лучший алгоритм, потому что я не использовал отсортированный характер входных массивов.
Благодарим за предоставление ссылки. Он подтверждает тот факт, что эта проблема не может быть решена лучше, чем O (n^2logn). Его полезный навык, чтобы быть в состоянии сказать (возможно, доказать) более жесткую нижнюю границу для данной проблемы. Ясно, что мы можем легко сводить мою проблему к той, на которую ссылается ваша ссылка, но есть что-то, что мы можем сделать с точки зрения пространства. Может быть, я могу уйти, не используя пространство, торгуя мало или совсем не время. – Srikanth
Если вы можете сгенерировать матрицу по ходу, а не хранить ее, тогда вы используете только пространство O (* n *) (не считая пространства для вывода). –
Не могли бы вы рассказать, как это делается. Мы можем легко создать декартово произведение с 2 для циклов, каждый из которых выполняется на массиве, но он не будет отсортирован и не будет использовать какое-либо пространство. Если выход не сохраняется в программе, мы не считаем это иначе, он считается частью сложности алгоритмического пространства. – Srikanth