avva: (moose)
[personal profile] avva
Цитирую из подзамочной записи с разрешения автора, который работает в американской компании и интервьюирует программистов:
Интесная закономерность выявляется. Мы начинаем интервью с того, что просим кандидата прочитать вот такой код, и сказать, что он делает. Как бы он назвал эту функцию?

private static int ok(int a, int b) {
   while (a >= b) a -= b;
   return a;
}

Пока результаты такие, что после этого вопроса интервью можно заканчивать. Если человек отвечает нормально на этот вопрос, то и дальше отвечает нормально. Если вообще близко не может понять о чем речь, то дальше только хуже.

Date: 2013-05-13 08:14 am (UTC)
From: [identity profile] piter239.livejournal.com
Без гарантии "все числа различные" сортировать таки надо. Гарантия была в задании?

Date: 2013-05-13 08:27 am (UTC)
From: [identity profile] gineer.livejournal.com
"массив чисел от 0 до 255 размером 256"

ну, собственно, я сам тоже не сразу дотумкал, в чом подвох,
хоть и сразу, что он есть.
просто предствьте на более очевидном примере, что ли.
типа массив из 4 чисел, от 0 до 3. ;)

Date: 2013-05-13 08:49 am (UTC)
From: [identity profile] mtyukanov.livejournal.com
Ну и? Типа массив из 4 чисел, от 0 до 3: {2,1,0,1}. Отсортируем, пользуясь знанием о возможных значениях 0..3. Задача на самом деле довольно интересная.

Date: 2013-05-13 09:07 am (UTC)
From: [identity profile] d-ohrenelli.livejournal.com
сортировать все равно не нужно.
Посчитать количество каждого номера и сгенерировать массив.
O(n)

Date: 2013-05-13 09:14 am (UTC)
From: [identity profile] gineer.livejournal.com
да, я тоже так понял, сперва
но, там, всетаки, еще было ЭТО требование -- каждое из чисел встречается один раз. ;)

Date: 2013-05-13 09:42 am (UTC)
From: [identity profile] mtyukanov.livejournal.com
Так "подсчитать количество каждого номера и сгенерировать массив" -- это и есть "сортировать" для данного случая. Если бы под "сортировать" имелось в виду "пользоваться стандартными методами сортировки" -- это было бы просто глупо.

А так -- легкая, минутная с набивкой кода, задачка, заставляющая быстро чуть-чуть подумать -- и при этом вполне практичная, такие случаи сплошь и рядом.

Можно развить ее до более задумчивой, если запретить использовать для подсчета внешний контейнер -- предположим, дело происходит в условиях жестких ограничений по памяти, нужен чистый inplace. Или просто порассуждать, когда для хранения количеств лучше пользоваться массивом, а когда динамической структурой вроде списка. Ну и, да, спросить, а что будет, если добавить условие "неповторяющиеся числа". Все легкое, но все вполне осмысленное.

Date: 2013-05-13 09:54 am (UTC)
From: [identity profile] gineer.livejournal.com
дык... там и была эта оговорка, про "неповторяющиеся числа",
которая обессмысливает вообще сам вопрос
по крайней мере с моей т.з.
с точки зрения интервбюера -- все было ок :)

Date: 2013-05-13 09:57 am (UTC)
From: [identity profile] d-ohrenelli.livejournal.com
Я проверил, это, кстати, стандартный алгритм сортировки, на3ывается сортировка подсчетом или
counting sort.

Так что я был не прав.

Date: 2013-05-13 07:25 pm (UTC)
From: [identity profile] unbe.livejournal.com
http://en.wikipedia.org/wiki/Counting_sort

Date: 2013-05-13 07:26 pm (UTC)
From: [identity profile] unbe.livejournal.com
ой, поздно заметил ваш ответ на собственный комментарий.

Date: 2013-05-13 09:04 am (UTC)
From: [identity profile] piter239.livejournal.com
Берем пример 0 0 0 1

В чем подвох?

Date: 2013-05-13 09:12 am (UTC)
From: [identity profile] gineer.livejournal.com
http://avva.livejournal.com/2625137.html?thread=95997041#t95997041

Date: 2013-05-13 07:25 pm (UTC)
From: [identity profile] piter239.livejournal.com
да это-то сразу понятно.

Непонятно другое: с какой целью (или по какой причине) Вы КЛЮЧЕВОЕ требование -- каждое из чисел встречается один раз

не упомянули ни в первом своем комментарии, ни в ответе на мой прямой вопрос о гарантии "все числа различные"?

June 2025

S M T W T F S
123 4 5 6 7
8 910 11 12 13 14
15 16 17 1819 20 21
22 23 24 25 26 27 28
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 29th, 2025 09:17 am
Powered by Dreamwidth Studios