Re: Есть ли смысл писать свою сортировку в .Net?
От: hardcase Пират http://nemerle.org
Дата: 07.05.11 19:44
Оценка: 2 (2) +3
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>Зачем?

Чтобы проверить — а не дурак ли собеседуемый. Ваш К.О.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 04:51
Оценка: 3 (1) +1
Здравствуйте, vmpire, Вы писали:

V>Моя практика показывает, что все программисты, работавшие хотя бы несколько месяцев пузырьковую сортировку напишут с лёгкостью.


Я работаю уже 8 лет, в том числе 4 года ведущим. Я неспособен с ходу написать никакую сортировку (хотя вероятно был способен это сделать лет 8 назад), т.к. ни разу не сталкивался с необходимостью такого написания на практике.

V>Вы считаете, что программист, не способный написать даже простейшую сортировку, способен написать что-то реально сложное?


Разумеется. Знание алгоритма сортировки никак не помогает писать другие алгоритмы.

Для проверки алгоритмических навыков написание сортировки это худший способ. Т.к., во-первых, это задача из учебника, соответственно проверяется память, а не умение думать, второе, это достаточно сложная задача, которую вряд ли можно решить за пять минут, если ни разу с ней не сталкивался.
Re[7]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 09:58
Оценка: 3 (1) -1
Здравствуйте, vmpire, Вы писали:

U>>второе, это достаточно сложная задача, которую вряд ли можно решить за пять минут, если ни разу с ней не сталкивался.

V>Вы серьёзно??? у нас настолько упал уровень программистов, что они не могут решить задачу из школьной программы?
V>О чём же тогда спрашивать? как правильно записывается оператор присваивания?

Ты опять путаешь знание с умением думать. То что что-то есть в школьной программе не говорит, что это просто придумать, это говорит лишь о том, что это просто узнать. Если ни разу не прочитать про алгоритмы сортировки в книжке, т.е не знать о них, то придумать самому алгоритм сортировки за пять минут невозможно, поэтому сортировка это сложная задача.
Re: Есть ли смысл писать свою сортировку в .Net?
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 10.05.11 09:44
Оценка: +2
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>Зачем?

Скорее всего, собеседующий не знает, о чём спрашивать кандидата, и имеет слабое представление о задачах, которые придётся кандидату решать.
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 10.05.11 09:10
Оценка: 3 (1)
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.


Просить написать сортировку на собеседовании бессмысленно, т.к. этим проверяются не алгоритмические способности кандидата, а его способность к зубрежке. Причем зубрежке бессмысленной, т.к. на практике сортировку приходится писать по большим праздникам (мне, например, за 8 лет практики ни разу не понадобилось, соответственно алгоритм сортировки я давно и успешно забыл), а если все же понадобится, то алгоритм находится за 30 секунд в гугле. Если хочется проверить алгоритмические способности, то либо нужно давать задачи, которые в книжках не описаны (но так можно проверить только минимальный уровень навыков, т.к. сложные алгоритмы за пять минут не пишутся), либо попросить рассказать о каком-нибудь сложном алгоритме, который пришлось реализовывать на предыдущем месте работы.
Re: Есть ли смысл писать свою сортировку в .Net?
От: uhh  
Дата: 07.05.11 06:47
Оценка: 2 (1)
Здравствуйте, e.thrash, Вы писали:

ET>Если просят написать, то в каких случаях в практике это может потребоваться?


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

например, полезно знать, что qsort может деградировать до квадратичной сложности на определенного вида данных, и т.д.
Re: Есть ли смысл писать свою сортировку в .Net?
От: syrompe  
Дата: 10.05.11 07:46
Оценка: 2 (1)
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>Зачем?
ET>Рассмотрим сортировку структур данных.
ET>Если просят написать, то в каких случаях в практике это может потребоваться?

Ну у нас в одном проекте стандартная сортировка как-то раз не устроила — 10к элементов сортировалось безбожно долго (ну в О(N^2) qsort вылился).
Уж не помню на что заменили heap sort вроде, но прирост был весьма существенный.
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.05.11 06:41
Оценка: 1 (1)
Здравствуйте, ArhAngelVezel, Вы писали:

AAV>Здравствуйте, samius, Вы писали:


ET>>>Рассмотрим сортировку структур данных.

S>>В языках дотнета ее нет.

AAV>А это:

AAV>http://msdn.microsoft.com/ru-ru/library/system.array.sort.aspx
AAV>???
Там же написано .NET Framework Class Library(Библиотека классов платформы .NET Framework).
К языкам никакого отношения.
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: Sorc17 Россия  
Дата: 11.05.11 05:06
Оценка: 1 (1)
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, Undying, Вы писали:


U>>Здравствуйте, e.thrash, Вы писали:


ET>>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.


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

V>Обьясню, зачем так делается:
V>Прежде всего, сортировка это будет, обход дерева или что-то ещё — не так важно. Важно проверить, что собеседуемый реально имеет хоть какой-то опыт написания программ. И ни алгоритмичечские способности ни зубрёжка тут ни при чём. Потому, что если он напишет, например, сортировку по памяти из учебника можно попросить её слегка модифицировать для другого критерия сортировки или другой структуры входных данных. Если зазубрил — тут же всё станет ясно.
V>Зачем это нужно:
V>На собеседования приходит очень много пионЭров, которые все из себя такие крутые, знают много умных слов, бодро рассказывают об ORM, функциональном программировании, новых технологиях, об Agile и прочих модных темах... В общем, Кнут, Бек и Фаулер в одном лице, не меньше.
V>Но это только пока не попросишь их написать кусочек кода. Маленький, простой кусочек кода. Сортировку там (любую!), чтение значения из базы (любым способом), работу с деревом (заданной любым способом)...
V>Тут сразу начинается: "не помню", "забыл", "а как напечатать значение в консоль?"...
V>В общем, он начитался перед собеседованием всякого, а практического опыта у него — ноль. Полный. В лучшем случае — hello world написал.
V>Ну и зачем такого брать? Практическое задание — самый простой и быстрый способ таковых отсеять.

Сам с нуля написал движок для анонимного форума на PHP. И я сейчас вам не вспомню как сделать select из базы данных и тупо вывести на экран. Чё-то там mysql_connect() потом mysql_query() потом как-то ещё на ошибку надо проверить.

Я потихоньку делаю его уже второй год, друзья, которые работают PHP программистами часто консультируются у меня по каким-то вопросам в аське. И что, вы хотите сказать что у меня не достаточно опыта, от того что я не считаю нужным для себя зазубривать вызовы, их аргументы и порядок вызовов? Ну-ну. Удачи вам в поисках программистов, которые всё с первого раза запоминают наизусть и на всю жизнь.

Я даже System.out.println() не сразу вспомнил. Ну и что? У меня есть собственный небольшой 2D движок на Java с нуля и без какой-либо помощи и экзамплов и MMO Tower Defence на нем. У меня вообще нет опыта и я полный ноль? Что даже не сразу вспомнил как значение на консоль вывести? Ну-ну. Жаль, что в основном работодатель думает так как вы описали.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: ArhAngelVezel Россия  
Дата: 07.05.11 06:39
Оценка: :)
Здравствуйте, samius, Вы писали:

ET>>Рассмотрим сортировку структур данных.

S>В языках дотнета ее нет.

А это:
http://msdn.microsoft.com/ru-ru/library/system.array.sort.aspx
???
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: uhh  
Дата: 07.05.11 06:42
Оценка: +1
Здравствуйте, samius, Вы писали:

S>а) в конторе нет способных с этим справиться и сортировка с собеседования пойдет в продакшн код


you made my day
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 10.05.11 13:13
Оценка: -1
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, e.thrash, Вы писали:


ET>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.


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

Обьясню, зачем так делается:
Прежде всего, сортировка это будет, обход дерева или что-то ещё — не так важно. Важно проверить, что собеседуемый реально имеет хоть какой-то опыт написания программ. И ни алгоритмичечские способности ни зубрёжка тут ни при чём. Потому, что если он напишет, например, сортировку по памяти из учебника можно попросить её слегка модифицировать для другого критерия сортировки или другой структуры входных данных. Если зазубрил — тут же всё станет ясно.
Зачем это нужно:
На собеседования приходит очень много пионЭров, которые все из себя такие крутые, знают много умных слов, бодро рассказывают об ORM, функциональном программировании, новых технологиях, об Agile и прочих модных темах... В общем, Кнут, Бек и Фаулер в одном лице, не меньше.
Но это только пока не попросишь их написать кусочек кода. Маленький, простой кусочек кода. Сортировку там (любую!), чтение значения из базы (любым способом), работу с деревом (заданной любым способом)...
Тут сразу начинается: "не помню", "забыл", "а как напечатать значение в консоль?"...
В общем, он начитался перед собеседованием всякого, а практического опыта у него — ноль. Полный. В лучшем случае — hello world написал.
Ну и зачем такого брать? Практическое задание — самый простой и быстрый способ таковых отсеять.
Re[6]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 09:43
Оценка: +1
Здравствуйте, Undying, Вы писали:

V>>Моя практика показывает, что все программисты, работавшие хотя бы несколько месяцев пузырьковую сортировку напишут с лёгкостью.

U>Я работаю уже 8 лет, в том числе 4 года ведущим. Я неспособен с ходу написать никакую сортировку (хотя вероятно был способен это сделать лет 8 назад), т.к. ни разу не сталкивался с необходимостью такого написания на практике.
Я за 10 лет стажа тоже ни разу не сталкивался с необходимостью написания своей, но двумя-тремя способами напишу сходу.

V>>Вы считаете, что программист, не способный написать даже простейшую сортировку, способен написать что-то реально сложное?

U>Разумеется. Знание алгоритма сортировки никак не помогает писать другие алгоритмы.
Вы действительно не понимаете? Сортировка тут ни при чём, можно дать любой простой алгоритм. Именно простой, так как сложный он может действительно не знать, так как не работал с ним. Просто сортировка это один из простых алгоритмов, о которых должен иметь понятие любой программист, тем более ведущий.

U>Для проверки алгоритмических навыков написание сортировки это худший способ. Т.к., во-первых, это задача из учебника, соответственно проверяется память, а не умение думать,

Для проверки умения думать задача легко может быть слегка модифицирована
U>второе, это достаточно сложная задача, которую вряд ли можно решить за пять минут, если ни разу с ней не сталкивался.
Вы серьёзно??? у нас настолько упал уровень программистов, что они не могут решить задачу из школьной программы?
О чём же тогда спрашивать? как правильно записывается оператор присваивания?
Re[8]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 10:09
Оценка: +1
Здравствуйте, Undying, Вы писали:

U>>>второе, это достаточно сложная задача, которую вряд ли можно решить за пять минут, если ни разу с ней не сталкивался.

V>>Вы серьёзно??? у нас настолько упал уровень программистов, что они не могут решить задачу из школьной программы?
V>>О чём же тогда спрашивать? как правильно записывается оператор присваивания?

U>Ты опять путаешь знание с умением думать.

Вы, вообще, понимаете, что такое ирония? Вы реально думаете, что я хочу спрашивать про оператор присваивания?

U>То что что-то есть в школьной программе не говорит, что это просто придумать, это говорит лишь о том, что это просто узнать. Если ни разу не прочитать про алгоритмы сортировки в книжке, т.е не знать о них, то придумать самому алгоритм сортировки за пять минут невозможно, поэтому сортировка это сложная задача.

Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.
Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.
Re[6]: Есть ли смысл писать свою сортировку в .Net?
От: Deprivator  
Дата: 11.05.11 15:33
Оценка: :)
Здравствуйте, Undying, Вы писали:

U>Я работаю уже 8 лет, в том числе 4 года ведущим. Я неспособен с ходу написать никакую сортировку (хотя вероятно был способен это сделать лет 8 назад), т.к. ни разу не сталкивался с необходимостью такого написания на практике.


даже "пузырек" неспособны?? простите за прямоту, но Вы либо кокетничаете, либо профнепригодны...
In P=NP we trust.
Есть ли смысл писать свою сортировку в .Net?
От: e.thrash  
Дата: 07.05.11 06:02
Оценка:
Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.
Зачем?
Рассмотрим сортировку структур данных.
Если просят написать, то в каких случаях в практике это может потребоваться?
Re: Есть ли смысл писать свою сортировку в .Net?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.05.11 06:33
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

Можно пример алгоритмических вещей, реализованных в каком либо языке (.net)?
ET>Зачем?
Возможно, хотят посмотреть, справится ли кандидат с этим заданием

ET>Рассмотрим сортировку структур данных.

В языках дотнета ее нет.

ET>Если просят написать, то в каких случаях в практике это может потребоваться?

а) в конторе нет способных с этим справиться и сортировка с собеседования пойдет в продакшн код
б) стандартная библиотечная чем-то не устраивает. Но тогда это что-то должны сообщить кандидату, что бы он принял во внимание этот фактор при написании задания.
в) для проверки практических навыков кандидата
Re: Есть ли смысл писать свою сортировку в .Net?
От: midcyber
Дата: 10.05.11 03:54
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Если просят написать, то в каких случаях в практике это может потребоваться?


Пишут свой аналог дот-нета
Re: Есть ли смысл писать свою сортировку в .Net?
От: _FRED_ Черногория
Дата: 10.05.11 05:15
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Рассмотрим сортировку структур данных.

ET>Если просят написать, то в каких случаях в практике это может потребоваться?

Зависит от того, какую именно сортировку просят написать. Если сферическую в вакууме ("напишите хоть какую-нибудь…"), то на практике это не может потребоваться, ибо "каких-нибудь" реализаций уже достаточно, в той же BCL, поэтому прекрасно подойдёт богосорт — проверить адекватность вопрошающего. Если какую-то конкретную — то где это может потребоваться зависит от того, что же попросили.
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: Jack128  
Дата: 10.05.11 13:29
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, Undying, Вы писали:


U>>Здравствуйте, e.thrash, Вы писали:


ET>>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.


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

V>Обьясню, зачем так делается:
V>Прежде всего, сортировка это будет, обход дерева или что-то ещё — не так важно. Важно проверить, что собеседуемый реально имеет хоть какой-то опыт написания программ. И ни алгоритмичечские способности ни зубрёжка тут ни при чём. Потому, что если он напишет, например, сортировку по памяти из учебника можно попросить её слегка модифицировать для другого критерия сортировки или другой структуры входных данных. Если зазубрил — тут же всё станет ясно.

Ну да, если человек написал сортировку — значит он — велосипедист. Не смог, значит юзает библиотечные функции — практик.

V>Зачем это нужно:

V>На собеседования приходит очень много пионЭров, которые все из себя такие крутые, знают много умных слов, бодро рассказывают об ORM, функциональном программировании, новых технологиях, об Agile и прочих модных темах... В общем, Кнут, Бек и Фаулер в одном лице, не меньше.
V>Но это только пока не попросишь их написать кусочек кода. Маленький, простой кусочек кода. Сортировку там (любую!), чтение значения из базы (любым способом), работу с деревом (заданной любым способом)...

Вот не надо мешать. Читать данные из БД (с использованием всяких оберток, а не на прямую, использую всякие DB API) — это практическая задача, которую каждый первый программист решает каждый день, а сортировки пишут только писатели stdlib'ов для языков программирования, за редким исключением.

V>Тут сразу начинается: "не помню", "забыл", "а как напечатать значение в консоль?"...

V>В общем, он начитался перед собеседованием всякого, а практического опыта у него — ноль. Полный. В лучшем случае — hello world написал.
V>Ну и зачем такого брать? Практическое задание — самый простой и быстрый способ таковых отсеять.

Сортировка — это не практический пример.
Re: Есть ли смысл писать свою сортировку в .Net?
От: Osaka  
Дата: 10.05.11 14:44
Оценка:
ET>сортировку структур данных.
ET>Если просят написать, то в каких случаях в практике это может потребоваться?
что-то не уследил, в linq поддержку поиска по индексам уже написали? Если делать такое самим, то потребуется.
Re[4]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 10.05.11 15:17
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Ну да, если человек написал сортировку — значит он — велосипедист. Не смог, значит юзает библиотечные функции — практик.

Не так. Смог хоть что-то внятное написать, решая простую задачу (не обязательно сортировку, пофиг что) — значит действительно писал на этом языке. Если только слова говорит, но даже простая практическая вещь вызывает ступор — "Спасибо, наш HR отдел свяжется с вами".

J>Вот не надо мешать. Читать данные из БД (с использованием всяких оберток, а не на прямую, использую всякие DB API) — это практическая задача, которую каждый первый программист решает каждый день

Именно! поэтому если человек этого сделать не смог — то вряд ли он реально работал программистом.

J>, а сортировки пишут только писатели stdlib'ов для языков программирования, за редким исключением.

Это первый курс института (qsort), простейшая задача. Сортировка пузырьком — вообще школьный уровен. Квадратный корень человек тоже не каждый день приходится считать, но если человек этого сделать не может, а при этом собеседуется на математика, то понятно, что лучше поискать другого кандидата

V>>Тут сразу начинается: "не помню", "забыл", "а как напечатать значение в консоль?"...

V>>В общем, он начитался перед собеседованием всякого, а практического опыта у него — ноль. Полный. В лучшем случае — hello world написал.
V>>Ну и зачем такого брать? Практическое задание — самый простой и быстрый способ таковых отсеять.
J>Сортировка — это не практический пример.
Предложите лучший пример, не вопрос.
Моя практика показывает, что все программисты, работавшие хотя бы несколько месяцев пузырьковую сортировку напишут с лёгкостью.
Вы считаете, что программист, не способный написать даже простейшую сортировку, способен написать что-то реально сложное?
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 10.05.11 15:30
Оценка:
Здравствуйте, Кирилл Лебедев, Вы писали:

ET>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>>Зачем?
КЛ>Скорее всего, собеседующий не знает, о чём спрашивать кандидата, и имеет слабое представление о задачах, которые придётся кандидату решать.
Не всегда так (хотя, так, наверное, тоже бывает).
Вот знаю я, например, что человеку нужно будет модифицировать клиентское приложение на WinForms. Мне что, на собеседовании выложить перед ним реальные requirements на сто страниц и попросить написать на бумажке бизнес-логику на пару тысяч строк?
Простой тест хорошо покажет базовое знание языка и отсутствие общей тупости.
А реализовано это уже в BCL или нет — это вообще не важно.
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 05:25
Оценка:
Здравствуйте, vmpire, Вы писали:

V>На собеседования приходит очень много пионЭров, которые все из себя такие крутые, знают много умных слов, бодро рассказывают об ORM, функциональном программировании, новых технологиях, об Agile и прочих модных темах... В общем, Кнут, Бек и Фаулер в одном лице, не меньше.


А зачем на собеседовании разговаривать о книжках и модных технологиях? Разговаривать надо о том какие задачи на предыдущей работе человек решал, какие решения при этом использовал, какие вопросы и сложности при этом возникали.
Re[4]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 08:51
Оценка:
Здравствуйте, Undying, Вы писали:

V>>На собеседования приходит очень много пионЭров, которые все из себя такие крутые, знают много умных слов, бодро рассказывают об ORM, функциональном программировании, новых технологиях, об Agile и прочих модных темах... В общем, Кнут, Бек и Фаулер в одном лице, не меньше.


U>А зачем на собеседовании разговаривать о книжках и модных технологиях? Разговаривать надо о том какие задачи на предыдущей работе человек решал, какие решения при этом использовал, какие вопросы и сложности при этом возникали.

Вот о них он и рассказывает как написано выше.
Re[4]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 10:00
Оценка:
Здравствуйте, Sorc17, Вы писали:

V>>Но это только пока не попросишь их написать кусочек кода. Маленький, простой кусочек кода. Сортировку там (любую!), чтение значения из базы (любым способом), работу с деревом (заданной любым способом)...

V>>Тут сразу начинается: "не помню", "забыл", "а как напечатать значение в консоль?"...
V>>В общем, он начитался перед собеседованием всякого, а практического опыта у него — ноль. Полный. В лучшем случае — hello world написал.
V>>Ну и зачем такого брать? Практическое задание — самый простой и быстрый способ таковых отсеять.

S>Сам с нуля написал движок для анонимного форума на PHP. И я сейчас вам не вспомню как сделать select из базы данных и тупо вывести на экран. Чё-то там mysql_connect() потом mysql_query() потом как-то ещё на ошибку надо проверить.

Вы ответили на вопрос Такой ответ я бы принял.

S>Я потихоньку делаю его уже второй год, друзья, которые работают PHP программистами часто консультируются у меня по каким-то вопросам в аське. И что, вы хотите сказать что у меня не достаточно опыта, от того что я не считаю нужным для себя зазубривать вызовы, их аргументы и порядок вызовов?

Откуда вы взяли, что я спрашиваю про аргументы и порядок их вызовов?
S>Ну-ну. Удачи вам в поисках программистов, которые всё с первого раза запоминают наизусть и на всю жизнь.
Вы возразили себе, а не мне Я такого не утверждал.

S>Я даже System.out.println() не сразу вспомнил. Ну и что? У меня есть собственный небольшой 2D движок на Java с нуля и без какой-либо помощи и экзамплов и MMO Tower Defence на нем. У меня вообще нет опыта и я полный ноль? Что даже не сразу вспомнил как значение на консоль вывести? Ну-ну. Жаль, что в основном работодатель думает так как вы описали.

Не кипятитесь так, вредно для здоровья.
Во первых, то, к чему вы прицепились, это не список вопросов для собеседования. Это примеры, показывающие сложность задач, который человек должен уметь решать.
Во вторых, неужели вы думаете, что если человек не вспомнит println(), то я тут же решу, что он безнадёжен? Это же чушь, так можно кучу толковых людей отсеять. Если человек говорит, что последнее время роаботал в ASP.NET так я вообще его про консоль спрашивать не буду. Но тогда спрошу, например, какими способами можно вывести в ASP.NET список значений (ожидая услышать что-то типа Repeater и DataGrid или другие варианты).
А вот если он услышав, что нужно писать консольные приложения, начинает утверждать, что писал их последние три года, то я ожидаю, что он ответит на вопрос про вывод на консоль. Ибо иначе он просто врёт.
Re[5]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 10:00
Оценка:
Здравствуйте, vmpire, Вы писали:

U>>А зачем на собеседовании разговаривать о книжках и модных технологиях? Разговаривать надо о том какие задачи на предыдущей работе человек решал, какие решения при этом использовал, какие вопросы и сложности при этом возникали.

V>Вот о них он и рассказывает как написано выше.

Цель работы программиста на предыдущей работе состояла в изучении функционального программирования, ОРМ и Агиле? Или он все-таки приносил какую-то пользу обществу?
Re[5]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 10:12
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Во вторых, неужели вы думаете, что если человек не вспомнит println(), то я тут же решу, что он безнадёжен? Это же чушь, так можно кучу толковых людей отсеять. Если человек говорит, что последнее время роаботал в ASP.NET так я вообще его про консоль спрашивать не буду. Но тогда спрошу, например, какими способами можно вывести в ASP.NET список значений (ожидая услышать что-то типа Repeater и DataGrid или другие варианты).


С тем что практические вопросы на собеседовании это нормально и спрашивать надо о том с чем человек последнее время работал, я полностью согласен. Но изначально речь шла о сортировке, а это очень плохой практический вопрос, т.к. реализация своего варианта сортировки крайне редкая задача, с которой 99% программистов не сталкиваются.
Re[9]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 11.05.11 10:19
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.


Это задача на 5 минут на листочке бумаги?

V>Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.


Сортировка полным перебором, конечно, простая задача. Что-то более хитрое уже думать надо и вряд ли пять минут.
Re[10]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 10:57
Оценка:
Здравствуйте, Undying, Вы писали:

V>>Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.

U>Это задача на 5 минут на листочке бумаги?
Для меня лично достаточно начала её решения на листочке бумаги. Синтаксис тоже побоку.
Писал человек на языке или нет видно по трём-пяти строчкам кода.

V>>Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.

U>Сортировка полным перебором, конечно, простая задача. Что-то более хитрое уже думать надо и вряд ли пять минут.
Ну так я же говорю — любым способом.
Re[6]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 11.05.11 10:58
Оценка:
Здравствуйте, Undying, Вы писали:

U>>>А зачем на собеседовании разговаривать о книжках и модных технологиях? Разговаривать надо о том какие задачи на предыдущей работе человек решал, какие решения при этом использовал, какие вопросы и сложности при этом возникали.

V>>Вот о них он и рассказывает как написано выше.

U>Цель работы программиста на предыдущей работе состояла в изучении функционального программирования, ОРМ и Агиле? Или он все-таки приносил какую-то пользу обществу?

Вот это я и пытаюсь выяснить на собеседовании
Re[5]: Есть ли смысл писать свою сортировку в .Net?
От: Sorc17 Россия  
Дата: 11.05.11 14:13
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Не кипятитесь так, вредно для здоровья.

V>Во первых, то, к чему вы прицепились, это не список вопросов для собеседования. Это примеры, показывающие сложность задач, который человек должен уметь решать.
V>Во вторых, неужели вы думаете, что если человек не вспомнит println(), то я тут же решу, что он безнадёжен? Это же чушь, так можно кучу толковых людей отсеять. Если человек говорит, что последнее время роаботал в ASP.NET так я вообще его про консоль спрашивать не буду. Но тогда спрошу, например, какими способами можно вывести в ASP.NET список значений (ожидая услышать что-то типа Repeater и DataGrid или другие варианты).
V>А вот если он услышав, что нужно писать консольные приложения, начинает утверждать, что писал их последние три года, то я ожидаю, что он ответит на вопрос про вывод на консоль. Ибо иначе он просто врёт.

Отлично
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re: Есть ли смысл писать свою сортировку в .Net?
От: olegkr  
Дата: 11.05.11 19:42
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

Вот интересно. А почему именно сортировку, а не метод Рунге — Кутты?
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[7]: Есть ли смысл писать свою сортировку в .Net?
От: Undying Россия  
Дата: 12.05.11 03:42
Оценка:
Здравствуйте, Deprivator, Вы писали:

D>даже "пузырек" неспособны?? простите за прямоту, но Вы либо кокетничаете, либо профнепригодны...


Сейчас, после того как я в течении нескольких дней по несколько минут над задачей сортировки думал, я скорей всего даже квик-сорт напишу. Я вот спроси меня дня три назад, то за пять минут я вряд ли что-то толковое бы ответил.
Re: Есть ли смысл писать свою сортировку в .Net?
От: Mamut Швеция http://dmitriid.com
Дата: 12.05.11 09:53
Оценка:
ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.
ET>Зачем?
ET>Рассмотрим сортировку структур данных.
ET>Если просят написать, то в каких случаях в практике это может потребоваться?

Поиск и выборка совпадающих подмножеств в большом наборе данных. Используется, например, в анализе ДНК.


dmitriid.comGitHubLinkedIn
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 12.05.11 11:22
Оценка:
Здравствуйте, olegkr, Вы писали:

ET>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

O>Вот интересно. А почему именно сортировку, а не метод Рунге — Кутты?
Потому, что не входит в школьную программу, многие не справятся.
Re[11]: Есть ли смысл писать свою сортировку в .Net?
От: B0FEE664  
Дата: 12.05.11 11:38
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, Undying, Вы писали:


V>>>Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.

Как правило — да.

V>>>Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.


Ответить так может любой

U>>Сортировка полным перебором, конечно, простая задача. Что-то более хитрое уже думать надо и вряд ли пять минут.

V>Ну так я же говорю — любым способом.

Т.е. вас бы устроило заведение второго массива и складывание туда результатов сортировки ? И вы бы взяли такого кандидата ?
И каждый день — без права на ошибку...
Re[12]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 12.05.11 12:04
Оценка:
Здравствуйте, B0FEE664, Вы писали:

V>>>>Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.

BFE>Как правило — да.
Вы либо СуперМегаКрутойЧувак, либо, скорее всего, просто никогда этого не делали. Либо за вас делали всё, оставляя вам только кодирование.

V>>>>Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.


BFE>Ответить так может любой

половину из этих людей я собеседовал и все они достаточно долго со мной работают, чтобы я был уверен в их правдивости. Кстати, таковых уже 8, из них 2 не программиста.

U>>>Сортировка полным перебором, конечно, простая задача. Что-то более хитрое уже думать надо и вряд ли пять минут.

V>>Ну так я же говорю — любым способом.
BFE>Т.е. вас бы устроило заведение второго массива и складывание туда результатов сортировки ? И вы бы взяли такого кандидата ?
Вопрос не корректный, я же не по одному этому критерию проверяю кандидатов. В данном случае попросил бы оценить достоинства и недостатки такого подхода по мнению кандидата.
Впрочем, мне сложно судить, я тест с сортировкой не продумывал. И в своих собеседованиях обычно другие практические вопросы задаю.
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: olegkr  
Дата: 12.05.11 16:21
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Потому, что не входит в школьную программу, многие не справятся.

Неужели сортировки входят?
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[4]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 12.05.11 21:29
Оценка:
Здравствуйте, olegkr, Вы писали:

V>>Потому, что не входит в школьную программу, многие не справятся.

O>Неужели сортировки входят?
У нас — входила (школа — обычная, не математическая). Естественно, только один простейший алгоритм (остальные штук 15 были в институте курсе на третьем).
Сейчас, насколько я знаю, входит если информатика профильный предмет (http://www.sverdlovsk-school8.nm.ru/docinf/docinf14.htm).
Хотя, школы разные, в гуманитарной, наверное, только ворд и шарики изучают...

Вообще, насколько я ощущаю, за последние годы уровень кандидатов серьёзно упал. Наша фирма, например, вынужденно отменила тестовое задание на программиста, так как очень немногие его вообще выполняли, не говоря уже о том, чтобы выполнить качественно.
Re[13]: Есть ли смысл писать свою сортировку в .Net?
От: B0FEE664  
Дата: 12.05.11 22:34
Оценка:
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, B0FEE664, Вы писали:

V>>>>>Если сортировка это сложная задача, то разработка реального приложения со сложным интерфейсом и путаной бизнес-логикой по неполным требованиям, видимо, простая задача.

BFE>>Как правило — да.
V>Вы либо СуперМегаКрутойЧувак, либо, скорее всего, просто никогда этого не делали. Либо за вас делали всё, оставляя вам только кодирование.

Всё я делал — от кодирования, до проектирования и от сортировки до метапрограммирования. Дело не в этом. Задача сортировки только кажется простой, потому что её как правило преподают в школе. Мне, вот, в школе её не преподавали. Мне, в школе, (давно это было) однажды домашнее задание дали — отсортировать массив чисел. На фортране. Ага, простая такая задача...

V>>>>>Я тут провожу среди окружающих экспресс-опрос, кто за какое время напишет сортировку массива любым способом. Можете тоже попробовать в своём окружении. У меня пока 100% (4 человека независимо) ответили, что если любым способом (без требований к производительности, памяти...) напишут легко. Оценки, правда,разные, кто-то за 5 минут, кто-то за полчаса.

BFE>>Ответить так может любой
V>половину из этих людей я собеседовал и все они достаточно долго со мной работают, чтобы я был уверен в их правдивости. Кстати, таковых уже 8, из них 2 не программиста.

ok. верю.

U>>>>Сортировка полным перебором, конечно, простая задача. Что-то более хитрое уже думать надо и вряд ли пять минут.

V>>>Ну так я же говорю — любым способом.
BFE>>Т.е. вас бы устроило заведение второго массива и складывание туда результатов сортировки ? И вы бы взяли такого кандидата ?
V>Вопрос не корректный, я же не по одному этому критерию проверяю кандидатов. В данном случае попросил бы оценить достоинства и недостатки такого подхода по мнению кандидата.
Недостатков много, главный — использование своей функции вместо стандартной. Достоинства — не портится входной массив. И что ?
V>Впрочем, мне сложно судить, я тест с сортировкой не продумывал. И в своих собеседованиях обычно другие практические вопросы задаю.
Вот. В этом-то и суть.
И каждый день — без права на ошибку...
Re[14]: Есть ли смысл писать свою сортировку в .Net?
От: vmpire Россия  
Дата: 12.05.11 23:06
Оценка:
Здравствуйте, B0FEE664, Вы писали:

V>>Впрочем, мне сложно судить, я тест с сортировкой не продумывал. И в своих собеседованиях обычно другие практические вопросы задаю.

BFE>Вот. В этом-то и суть.
Ну так я и не утверждал, что это хороший тест. Или что он плохой.
Я пытался объяснить, зачем так могут делать (и, видимо, делают).
У каждого собеседующего обычно есть свой типовой план собеседования и свои практические задачи.
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: andy1618 Россия  
Дата: 12.05.11 23:25
Оценка:
Здравствуйте, uhh, Вы писали:

uhh>например, полезно знать, что qsort может деградировать до квадратичной сложности на определенного вида данных, и т.д.


Именно!
Ещё очень полезно знать, что qsort не является устойчивой сортировкой.
А, к примеру, банальный пузырёк — является.
Re: Есть ли смысл писать свою сортировку в .Net?
От: andy1618 Россия  
Дата: 12.05.11 23:40
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>Зачем?
ET>Рассмотрим сортировку структур данных.
ET>Если просят написать, то в каких случаях в практике это может потребоваться?

Про сортировки на собеседованиях — обсуждали тут как-то:
http://www.rsdn.ru/forum/job/3394910.aspx
Автор: andy1618
Дата: 19.05.09
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.05.11 04:21
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, uhh, Вы писали:


uhh>>например, полезно знать, что qsort может деградировать до квадратичной сложности на определенного вида данных, и т.д.


A>Именно!

A>Ещё очень полезно знать, что qsort не является устойчивой сортировкой.

Зависит от реализации. Реализация с сортировкой по месту (in-place partitioning) как-правило нестабильная. А при использовании дополнительной памяти — легко может быть стабильной. Русская википедия, как обычно, не в теме.
Re[4]: Есть ли смысл писать свою сортировку в .Net?
От: andy1618 Россия  
Дата: 13.05.11 07:57
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, andy1618, Вы писали:


A>>Здравствуйте, uhh, Вы писали:


uhh>>>например, полезно знать, что qsort может деградировать до квадратичной сложности на определенного вида данных, и т.д.


A>>Именно!

A>>Ещё очень полезно знать, что qsort не является устойчивой сортировкой.

S>Зависит от реализации. Реализация с сортировкой по месту (in-place partitioning) как-правило нестабильная. А при использовании дополнительной памяти — легко может быть стабильной.


Угу. Мы обсуждаем стандартный .Sort из .NET:

List<T>.Sort
This method uses Array.Sort, which uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.
On average, this method is an O(n log n) operation, where n is Count; in the worst case it is an O(n ^ 2) operation.



S>Русская википедия, как обычно, не в теме.


А где именно проблема? Ща подправим!
Re[5]: Есть ли смысл писать свою сортировку в .Net?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.05.11 08:04
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, samius, Вы писали:


A>>>Ещё очень полезно знать, что qsort не является устойчивой сортировкой.


S>>Зависит от реализации. Реализация с сортировкой по месту (in-place partitioning) как-правило нестабильная. А при использовании дополнительной памяти — легко может быть стабильной.


A>Угу. Мы обсуждаем стандартный .Sort из .NET:

Там да, неустойчива. А в общем случае зависит от реализации.

S>>Русская википедия, как обычно, не в теме.


A>А где именно проблема? Ща подправим!

Там она в списке неустойчивых без оговорок на реализацию.
Re[6]: Есть ли смысл писать свою сортировку в .Net?
От: andy1618 Россия  
Дата: 13.05.11 08:40
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Русская википедия, как обычно, не в теме.


A>>А где именно проблема? Ща подправим!

S>Там она в списке неустойчивых без оговорок на реализацию.

Дописал оговорку. Если что — подправьте.
Re[7]: Есть ли смысл писать свою сортировку в .Net?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.05.11 08:46
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, samius, Вы писали:


S>>>>Русская википедия, как обычно, не в теме.


A>>>А где именно проблема? Ща подправим!

S>>Там она в списке неустойчивых без оговорок на реализацию.

A>Дописал оговорку. Если что — подправьте.

На английской страничке написано

Efficient implementations of quicksort (with in-place partitioning) are typically unstable sorts

Что подразумевает существование устойчивых реализаций с in-place. Так что "При использовании O(n) дополнительной памяти, можно сделать сортировку устойчивой." не совсем соответствует. Т.е. да, при использовании дополнительной памяти можно, но и без нее, видимо, тоже можно.
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 13.05.11 08:58
Оценка:
Здравствуйте, olegkr, Вы писали:

O>Здравствуйте, e.thrash, Вы писали:


ET>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.


O>Вот интересно. А почему именно сортировку, а не метод Рунге — Кутты?


Во-первых, при некоторых дополнительных условиях это может быть задача на сообразительность (какая-нить radix сортировка, которая позволит получить O(n)).
Во-вторых, при реализации сортировки нужно помнить только общую идею. А при реализации Рунге-Кутты кроме общей идеи (идем от точки к точке) надо помнить еще и хитрые формулы. Либо уметь их вывести, что уже требует более-менее серьезного математического опыта.
В-третьих, сортировка намного чаще используется, пусть даже и через библиотечные функции.
Re: Есть ли смысл писать свою сортировку в .Net?
От: minorlogic Украина  
Дата: 13.05.11 09:06
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

ET>Зачем?

Чтобы выяснить уровень знаний и умений собеседуемого? Что может быть лучше чем простая алгоритмическая задача.

ET>Рассмотрим сортировку структур данных.

ET>Если просят написать, то в каких случаях в практике это может потребоваться?

Если речь идет о собеседовании то при чем тут практическая польза.

А в целом кто то в ветке писал что встроенная сортировка в какой то скриптоязык реализована очень криво и может понадобится ее переписать.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Есть ли смысл писать свою сортировку в .Net?
От: dabeat_bf Украина http://alexmogurenko.com
Дата: 13.05.11 09:17
Оценка:
Здравствуйте, olegkr, Вы писали:

ET>>Вот от сеньора .Net часто на собеседовании просят что-то алгоритмическое написать, что уже реализовано в самом языке.

O>Вот интересно. А почему именно сортировку, а не метод Рунге — Кутты?

А что, я как-то собеседовал кандидата, у которого было в резюме что-то вроде "хорошие знания Математики (дальше список в котором упоминались и численные методы)". Спросил про метод Градиентного спуска, оказалось что ен очень то и хорошие
Re[3]: Есть ли смысл писать свою сортировку в .Net?
От: olegkr  
Дата: 13.05.11 14:06
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Во-первых, при некоторых дополнительных условиях это может быть задача на сообразительность

Мда. Шутку восприняли всерьез
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[8]: Есть ли смысл писать свою сортировку в .Net?
От: andy1618 Россия  
Дата: 13.05.11 14:15
Оценка:
Здравствуйте, samius, Вы писали:

A>>>>А где именно проблема? Ща подправим!

S>>>Там она в списке неустойчивых без оговорок на реализацию.

A>>Дописал оговорку. Если что — подправьте.

S>На английской страничке написано
S>

S>Efficient implementations of quicksort (with in-place partitioning) are typically unstable sorts

S>Что подразумевает существование устойчивых реализаций с in-place. Так что "При использовании O(n) дополнительной памяти, можно сделать сортировку устойчивой." не совсем соответствует. Т.е. да, при использовании дополнительной памяти можно, но и без нее, видимо, тоже можно.

Если найдёте ссылку — будет здорово! Но я, честно говоря, не представляю, как можно её устойчивой сделать меньше, чем за O(n) по памяти.
А за основу правки взят абзац из таблички выше:

Quicksort can be done in place with O(log(n)) stack space, but the sort is unstable[citation needed]. Naïve variants use an O(n) space array to store the partition. An O(n) space implementation can be stable[citation needed].

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.