У меня есть 2 очень больших целочисленных массива, скажем, a [] и b [].
Я хочу вычислить сумму 2-го, 3-го и 4-го наибольшего числа из числа a [] и b [].то есть 2-е, 3-е и 4-е старшие числа среди обоих массивов ... это сумма только 3 чисел.Пожалуйста, предложите хороший алгоритм для этой проблемы.
Пожалуйста, поддержите ваш ответ с учетом временной сложности алгоритма.
Примечание: язык программирования не имеет значения.Вы можете предположить, что C
Вот что я разработал для этой задачи
Алгоритм:
1. Рассмотрим массив a [] и b [].Сортируйте a [] и b [] с сортировкой по максимальному значению кучи.
2. Теперь оба массива сортируются с помощью элемента max в качестве корневого узла в обоих массивах.Сравните корневые узлы a [] и b [], в зависимости от того, что больше, удалите это число из массива.
3. Повторно укажите массив, в котором был элемент max.
4. Теперь добавьте корневые узлы из [[] и b [] в переменной скажем sum.
5. Повторно укажите a [] и b [].
6. Сравните корневые узлы a [] и b [], в зависимости от того, что больше, добавьте это число к сумме.
7. Распечатать сумму вариации.