Решение задачи на алгоритм с помощью LINQ

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

На прошлой работе у меня в команде работал хороший программист и я решил его посоветовать. Он пришёл на тест, и как он мне сказал, решил его с помощью LINQ выражения. 

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

Что ты думаешь по этому поводу? Правильно ли принимать решения задачи, если она решена с помощью LINQ? Может ли это показать профессионализм программиста?


Комментарии

Таблицешлеп

Молодец, я бы тоже попроще вариант сделал.


Евгений

А разве Linq чем-то хуже в производительности, чем традиционный перебор элементов 2-х массивов?


urumchic

Если цель в том чтобы определить умеет ли человек реализовать какой нибудь алгоритм сортировки или поиска то конечно стоит попросить переписать решение без использования Where или OrderBy.


Евгений

Лучше уточнить, что желательно использовать. А то ведь это говорит о том, что он хорошо знает linq, что само по себе является плюсом для него.


eqr

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


СкульРидер

Хитрый код красноглазых бородачей, любителей чтива K&R, все равно необходимо изолировать и выпилить в отдельные сущности и библиотеки.

Ибо подобное спагетти == мина замедленного действия.

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

Если в задании не указано, что его нужно сделать в unsafe и через указатели, то какие вопросы могут быть по реализации.

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


Опечатка

* десяти вложенных циклов


Владимир

Заговорили за массивы и сортировки чего то вспомнился вопрос - как часто Вам приходится использовать алгоритмы сортировки? Во время изучения программирования, наверно все, изучали несколько вариантов сортировок, но на практике как часто это используется?


Михаил Фленов

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


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Twitter Telegram Youtube Instagram