?

Log in

No account? Create an account
Previous Entry Share Next Entry
photo25

Прекрасный трололо-вопрос для интервью

У вас есть 2 отсортированных массива integer'ов, расположенных в памяти, допустим, один за другим. (длины известны) Напишите алгоритм, который смержит их в один сортированный массив без дополнительной памяти, за O(n) времени.

(Вначале стоит просто спросить про мерж, потом добавить про память и время.)

Ну и да, придумать полный вариант за время интервью нереально, но если расслабить констрейнты - тогда всё хорошо. Т.е. это скорее personality test, нежели coding test.

UPD: Пример входных данных:

6 (длина), 7 (длина), 10, 11, 12, 100, 101, 102, 1, 2, 3, 4, 200, 210, 220 (13 байт данных)

This entry was originally posted at http://wizzard.dreamwidth.org/418797.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
metamage January 25th, 2015
Как тут выше уже писали, указатель на первый массив и будет указателем на объединенный.
Его и сортировать поразрядной сортировкой. По времени там O(n), а по памяти вроде O(1), если правильно помню.

wizzard0 January 26th, 2015
Поразрядная сортировка имеет сложность K*N, где K колво разрядов, т.е. log N

metamage January 26th, 2015
Ну это смотря что за integer'ы в задаче.
Я исходил из того, что используется какой-то целочисленный тип данных с фиксированным числом разрядов.

  • 1