Я думаю что количество неправильных номеров паспортов много меньше чем количество населения в стране. Т.е. 2ГБ получилось потому что в текстовом файле записано в фиксированном формате с кучей дырок. Следовательно первый шаг - оптимизировать файл приведя его во что то более компактное и заодно отсортированное. После чего возможно все будет убираться в оперативную память. А дальше - тупой бинарный поиск. Если файл пополняемый откуда то - то запускать сервис скажем раз в день который будет все перестраивать.Pantigalt wrote:1. Мы не можем разместить все числа в оперативной памяти (памяти ограничено). Из этого следует что размещать надо на диске.zhuravl wrote:Подумайте и скажите что вы сделаете для того, чтобы программа работала максимально быстро. Какие алгоритмы будете использовать, какие структуры данных и вспомогательные средства (если потребуется).
Примечание: Если памяти было бы много то наверное самым быстрым способом было бы размещать все в памяти и делать что то типа хэш-таблицы.
2. Размер записей в несжатом виде 2 Гб. Следовательно записей не больше 200 миллионов. Так как у нас всего 1 Гб то на хранение одного номер не может тратится больше 5 байтов. С другой стороны номера состоят из 10 цифр (10 миллиардов), это чуть больше 4 миллиарда (число из 4 байтов). Следовательно мы можем разместить все числа на диске.
3. Так как диск медленный по сравнению с оперативной памятью нам нужно к нему как можно меньше обращаться. Это приводит нас к стандартному решению типа B-tree. Далее очевидно поиск по B-дереву.
А вообще надо размещать на сервере где нет таких жесткий ограничений
Задачка, чтобы показать, что язык/технология не важны
-
- Уже с Приветом
- Posts: 10708
- Joined: 22 Jul 2006 20:19
Re: Задачка, чтобы показать, что язык/технология не важны
-
- Уже с Приветом
- Posts: 557
- Joined: 11 Aug 2015 00:57
Re: Задачка, чтобы показать, что язык/технология не важны
Список пропусков с энтропийным кодированием должен быть неплох для этой цели.adda_ wrote:Я думаю что количество неправильных номеров паспортов много меньше чем количество населения в стране. Т.е. 2ГБ получилось потому что в текстовом файле записано в фиксированном формате с кучей дырок. Следовательно первый шаг - оптимизировать файл приведя его во что то более компактное и заодно отсортированное. После чего возможно все будет убираться в оперативную память. А дальше - тупой бинарный поиск. Если файл пополняемый откуда то - то запускать сервис скажем раз в день который будет все перестраивать.
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Задачка, чтобы показать, что язык/технология не важны
Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говоритьKrys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Задачка, чтобы показать, что язык/технология не важны
Ваша восторженная лояльность работодателю - это нечто.Сабина wrote:Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говоритьKrys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код.
-
- Уже с Приветом
- Posts: 802
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Задачка, чтобы показать, что язык/технология не важны
Некоторые поступают следующим образом в целях экономии времени.Сабина wrote:Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говоритьKrys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код.
Не-технический персонал отводит тебя в комнату и предлагает кандидату выполнить задание на лаптопе на 1.5 часа (без интернета).
Потом технический человек (индус) удаленно (сидя у клиента) через shared screen смотрит решение и задает вопросы.
Вопросы типа напишите dependency property.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
-
- Уже с Приветом
- Posts: 802
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Задачка, чтобы показать, что язык/технология не важны
dup
Last edited by Pantigalt on 27 Oct 2015 02:34, edited 1 time in total.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Задачка, чтобы показать, что язык/технология не важны
Готовишь 5-7 вопросов не из учебника, требующих уточнений от соискателя для правильного ответа. Если поплыл - следующий. 80% отсеяно за 5 минут интервью.Pantigalt wrote:Некоторые поступают следующим образом в целях экономии времени.
Если первый это пройден - спрашиваешь с пристрастием по строчкам из резюме. Что делал, как делал, какие уроки получил.
Внутри ощущение брать\не брать формируется за первые 5 минут, потом сидят или из вежливости или убеждая себя взять человека "ну наконец ТОТ САМЫЙ, и не надо будет сидеть опять на этих долбанных интервью"...
ЗЫЖ мой совковый взгляд, в Прогрессивном Западном Обществе проводил интервью не сильно много
-
- Уже с Приветом
- Posts: 2261
- Joined: 17 Jun 2003 04:41
- Location: Just like US
Re: Задачка, чтобы показать, что язык/технология не важны
5 минут это очень долго... по книжке "Blink: The Power of Thinking Without Thinking", можно, как ниндзя, за несколько секунд всех кандидатов поотсеивать.mskmel wrote:Готовишь 5-7 вопросов не из учебника, требующих уточнений от соискателя для правильного ответа. Если поплыл - следующий. 80% отсеяно за 5 минут интервью.
Еще есть хорошая книжка - "Agile Hiring", ни много ни мало, про то, как "to hire good software developers in general and is inspired by agile concepts". Жалко, кандидаты быстро заканчиваются, и начальсто скулит, чтоб хоть кого-нибудь наняли...
Или придумайте 14 принципов, подлиннее, и заставьте кандидатов их зазубривать перед интервью, а потом проверяйте: у хороших девелоперов должна быть хорошая память, и внимание к деталям. Если принципы противоречивые, то это еще лучше, т.к. если из информации не возможно построить логическую систему, то ее сложнее запомнить.
...а мы такой компанией, возьмем, да и припремся к Элис!
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Задачка, чтобы показать, что язык/технология не важны
И если выучил, то сразу заворачивать домой, потому что идиоты нам не нужны.blanko27 wrote:Или придумайте 14 принципов, подлиннее, и заставьте кандидатов их зазубривать перед интервью
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Задачка, чтобы показать, что язык/технология не важны
Напоминает ГестапоPantigalt wrote:Некоторые поступают следующим образом в целях экономии времени.Сабина wrote:Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говоритьKrys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код.
Не-технический персонал отводит тебя в комнату и предлагает кандидату выполнить задание на лаптопе на 1.5 часа (без интернета).
Потом технический человек (индус) удаленно (сидя у клиента) через shared screen смотрит решение и задает вопросы.
Вопросы типа напишите dependency property.
https://www.youtube.com/watch?v=wOwblaKmyVw