Здравствуйте, Vzhyk, Вы писали:
V>Мало. Если у тебя такие задачи на собеседовании то, тыс на 500 (р.р.) в V>месяц может быть и соглашусь, за меньшее в подобную контору даже не сунусь.
На такие вакансии мы кандидатов по сайтам резюме не ищем, для этого существуют другие каналы.
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Здравствуйте, UA, Вы писали:
ПМ>Я не прошу это делать на stl.
С голыми списками работают только на первом курсе университета чтобы понять как оно работает но в реальной работе велосипедостроение не приветствуется.
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, Vzhyk, Вы писали:
V>Хотел высказаться жестче, но в баню можно отправиться. Отвечу по сути. V>Попросите набросать (посвторю, набросать, именно набросать, а не писать V>std::string) класс vector, matrix, string и обсудите с ним его решение V>(интерфейс класса, работу с памятью,...).
Вот когда компьютеру можно будет "набросать" vector, matrix, string, обсудить с ним решение и получить рабочую программу, тогда я буду так делать. А пока от программистов требуется умение писать хороший, понятный и эффективный код. Умение болтать языком ему ортогонально и проверяется вопросом "расскажите о наиболее интересном своём проекте".
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, UA, Вы писали:
UA>И как это сделать в STL: std::list<type> например? Максимум что приходит в голову так это идти по первому списку с помощью reverse_iterator и складывать элементы в другой list всегда в конец списка. Чтобы менять указатели между елементами нужен доступ к внутренней структуре хранения списка: type* next; type* prev; но что то не припомню чтобы STL давал доступ к таким вещам возможно из-за того чтобы не привязывать разработчика к конкретной реализации списка.
Структуры данных не ограничены контейнерами, предоставляемыми стандартной библиотекой.
Вот тебе пример односвязного списка на базе массивов:
typedef int VERTEX;
std::vector<POINT> m_PositionVertex; // Координаты вершин
std::vector<VERTEX> m_NextVertex; // Ссылка на следующую вершину
VERTEX m_FirstVertex, // Голова списка вершин
m_FirstFreeVertex; // Голова списка удаленных вершин
С моментальной бинарной сериализацией для POD данных и повторным использованием ранее удаленных элементов.
Ессно, все это завернуто в класс, детали реализации наружу не торчат.
_____________________
С уважением,
Stanislav V. Zudin
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Квадратичная сложность в развороте связного списка? Ты чего-то путаешь. O(N).
В развороте на месте. При условии отсутствия обратных ссылок — а это классический вариант связанного списка, хоть я и не припоминаю такого в стандартных либах. Хотя да, на практике как раз там двусвязный список, и там методы есть, позволяющие это все делать без оверхеда за время N. Но у интерфейса List таких методов нет. И что теперь instance of использовать и кастить явно? И на бумажке ? Лично я эти методы в голове не держу, так что хрен я напишу это за время N на бумажке без использования дополнительной памяти. А с использованием — это изврат писать, какого черта тогда не вернуть новый список?
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Да никакого подвоха. Просто дан односвязный или двусвязный список, и надо его обратить (развернуть указатели на элементы), или как-нибудь поменять элементы местами (я обычно делаю небольшие вариации, чтобы не заучивали).
Abirf именно в односвязности, так как я не представляю себе сколько-нибудь вменяемого программиста, который не смог бы обратить двусвязный.
У Роберста Сэдвика описывается алгоритм обращения именно для односвязного списка.
Там нужно пара вспомогательных указателей, которые надо правильно переприсваивать.
А указатели, как заметил Джоэл Спольски — это показатель "программистскости" программиста...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
GIV>>Да, че там. За каждый ответ на собесодовании надо платить! По типу «Кто хочет стать миллионером?» ПМ>Боюсь тогда большинство людей будут приходить на собеседование ради самого процесса, а не ради того, чтобы усроиться на работу.
А разве в «Кто хочет стать миллионером?» не берут деньги за первые 10 вопросов ещё до попадания кандидата в студию?
И каждый день — без права на ошибку...
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Вот теперь точно no hire, потому что список на месте разворачивается за линейное время. Начинаю убеждаться в верности выбранной методики.
public void reverse(List list)
Просим реализацию. Без instanse of, при условии, что передается однонаправленный список, который я написал сам.
Re[4]: Задача на собеседовании - обращение списка.
Причем здесь мнение википедии? Человек или обладает системными знаниями, или нет. Типы и структуры данных — это то, с чего начинается изучение программирования в школах и институтах.
Re[5]: Задача на собеседовании - обращение списка.
24.02.2012 14:13, Паблик Морозов пишет: >Быстрая сортировка — > примитивнейший алгоритм, если человек его хоть раз в жизни видел, то > напишет без проблем. Хотя если не знает, о чем речь, то может и не > написать (хотя незнание алгоритма быстрой сортировки — тоже хреновый > показатель).
За 20 лет ни разу не понадобилось писать оное самому. Всегда была в
наличии функция sort.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Задача на собеседовании - обращение списка.
Здравствуйте, Ахмед, Вы писали:
А>такой подход работает, но он ориентирован на отсев
Я тут и должен быть отсев. Если 9 из 10 кандидатов с такой задачей справится не могут, их надо отсеивать и не тратить по полтора часа на собеседование каждого. Ведь тогда на работу времени не останется.
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали: ПМ>Не могут написать процедуру, обращающую список. То, что получается в результате, список не обращает.
Ну это очень пространное определение. Если не брать в расчет опечатки и знание деталей редкоиспользуемого API, то у любой задачи, например, бывают граничные случаи, которые не позволяют ее решить за пять минут. Квиксорт, например, из таких.
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>Квадратичная сложность в развороте связного списка? Ты чего-то путаешь. O(N). E>В развороте на месте. При условии отсутствия обратных ссылок — а это классический вариант связанного списка, хоть я и не припоминаю такого в стандартных либах. Хотя да, на практике как раз там двусвязный список, и там методы есть, позволяющие это все делать без оверхеда за время N. Но у интерфейса List таких методов нет. И что теперь instance of использовать и кастить явно? И на бумажке ? Лично я эти методы в голове не держу, так что хрен я напишу это за время N на бумажке без использования дополнительной памяти. А с использованием — это изврат писать, какого черта тогда не вернуть новый список?
Почему-то все считают, что структуры данных ограничены стандартной библиотекой, предоставляемой языком. Паралич мышления?
Либо действительно, не всем это нужно.
_____________________
С уважением,
Stanislav V. Zudin
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, UA, Вы писали:
UA>С голыми списками работают только на первом курсе университета чтобы понять как оно работает но в реальной работе велосипедостроение не приветствуется.
Понятно, что не приветсвуется, я же написал, что задача нужна только для того, чтобы проверить, сможет ли человек написать примитивный алгоритм. Ведь давать реальные задачи невозможно по вполне очевидным причинам.
Re[8]: Задача на собеседовании - обращение списка.
24.02.2012 14:25, Lloyd пишет:
> Да я и не утверждаю, что это ненормально. Меня удивило, что, > оказывается, большое кол-во соискателей не в состоянии даже на такую > элементарщину ответить.
Ничего себе элементарщина...
> Неужели?
Да. Если нужен программист, который хорошо знает математику в некоторой
области, то и говорить надо по этой области. Но, простыми задачками
ничего не выяснишь. Просто надо выяснить, насколько устойчиво человек в
этой области себя чувствует или плавает сильно — а это беседа.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Задача на собеседовании - обращение списка.
24.02.2012 14:28, MaxRos пишет:
> Считаю самым лучшим способом собеседования расспросы о том, что было > сделано на предыдущих местах работы и углубление по ходу в технические > детали. Почему было принято такое решение? Как была решена вон та > проблема, почему? И так далее. Но такой способ собеседования предъявляет > серьёзные требования к собеседующему, т.к. он должен иметь хороший > кругозор и свободно общаться на разные технические темы.
А также понимать, что он делал и почему.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Задача на собеседовании - обращение списка.
24.02.2012 14:57, Паблик Морозов пишет:
> На такие вакансии мы кандидатов по сайтам резюме не ищем, для этого > существуют другие каналы.
9 из 10 кандидатов на вакансию, бла-бла-бла. Это не твой пост самый
первый в этой теме?