Нахождение второго наименьшего числа из данного списка с помощью функции «разделяй и властвуй»

Я пытаюсь решить эту проблему ..

Учитывая список из n чисел, мы хотели бы найти самые маленькие и вторые самые маленькие числа из списка. Опишите алгоритм «разделяй и властвуй», чтобы решить эту проблему. Предположим, что n = 2 ^ k для целого числа k. Количество сравнений с использованием вашего алгоритма не должно превышать 3n / 2 - 2, даже в худшем случае.

Мое текущее решение состоит в том, чтобы использовать алгоритм выбора, чтобы получить медиану, а затем разделить список на L1 (содержит элемент, меньший или равный медиане), R (медиана), L2 (содержит все элементы больше медианы). Это правильно? Если так, что я должен делать дальше?

Ответы на вопрос(2)

Ваш ответ на вопрос