Здравствуйте, Yarik_L, Вы писали:
Y_L>Если взять любой упорядоченный массив, то очевидно что все массивы, получающиеся из исходного вычеркиванием отдельных элементов, также будут упорядоченными. Значит и пустой массив обязан быть таковым
Для пустого нужно сделать исключение -- его состояние не определено. Объясню почему: по определению упорядоченного массива.
Re[4]: Помогает ли Linq сделать код понятнее или быстрее?
R>>его вариант на самом деле лучший, самый понятный и самых быстрых (только проверку на пустой массив надо приделать). G> G>Скажи по-русски что такое отсортированный массив.
???
R>>стремление к общности там где она нафиг не нужна — большая ошибка на самом деле. G>Обоснуй.
R>>работает, правда, все в разы медленнее, но кого нынче это волнует... G>Конечно, не волнует. Время компьютера дешево, а время программиста дорого.
ню-ню. время программиста, который для проверки упорядоченности массива его сортирует, а потом сравнивает (в оригинале такое чудо есть), должно оцениваться по ОТРИЦАТЕЛЬНОЙ ставке . бо как приходят такие чуды в перьях и в делают любой проект просто не рабочим. Для иллюстрации достаточно на WinMobile в тамошнем ворде открыть plain text на пару мегабайт -- тоже небось чье-то индусское время очень дорого стоило...
Re[4]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, 0K, Вы писали:
0K>Здравствуйте, gandjustas, Вы писали:
G>>Это ты где такую шутку прочитал? G>>99% данных обычно программа получает извне.
0K>Ну да, и записывает их в ОЗУ. А раз в ОЗУ, то лучше массив.
С чего ты взял что записывает?
С чего ты взял что массив лучше?
Re[5]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, vitasR, Вы писали:
R>Здравствуйте, gandjustas, Вы писали:
R>>>его вариант на самом деле лучший, самый понятный и самых быстрых (только проверку на пустой массив надо приделать). G>> G>>Скажи по-русски что такое отсортированный массив.
R>???
Чего непонятного. Приведи определение отсортированного массива (последовательности чисел в общем случае)
R>>>стремление к общности там где она нафиг не нужна — большая ошибка на самом деле. G>>Обоснуй.
R>например здесь
Как это относится к вопросу?
Ты не путай общность "архитекруры" и общность алгоритма. Второе всегда лучше, первое — спорно.
R>>>работает, правда, все в разы медленнее, но кого нынче это волнует... G>>Конечно, не волнует. Время компьютера дешево, а время программиста дорого.
R>ню-ню. время программиста, который для проверки упорядоченности массива его сортирует, а потом сравнивает (в оригинале такое чудо есть), должно оцениваться по ОТРИЦАТЕЛЬНОЙ ставке .
С чего ты взял? Задачу то он выполняет.
И такая проверка закончится быстрее, чем будет написан цикл.
R>бо как приходят такие чуды в перьях и в делают любой проект просто не рабочим.
Я видел "очень серьезных и крутых программистов", которые делают проект нерабочим гораздо более изощренными способами.
R>Для иллюстрации достаточно на WinMobile в тамошнем ворде открыть plain text на пару мегабайт -- тоже небось чье-то индусское время очень дорого стоило...
Совсем не понял как это связано с проверкой упорядоченности массива.
Re[3]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, gandjustas, Вы писали:
R>>>>его вариант на самом деле лучший, самый понятный и самых быстрых (только проверку на пустой массив надо приделать). G>>> G>>>Скажи по-русски что такое отсортированный массив.
R>>???
G>Чего непонятного. Приведи определение отсортированного массива (последовательности чисел в общем случае)
Вы не знаете что такое отсортированный массив?
G>Как это относится к вопросу? G>Ты не путай общность "архитекруры" и общность алгоритма. Второе всегда лучше, первое — спорно.
любая задача должна решаться адекватными средствами. Неадекватно отстреливать воробьев из пушек, неадекватно маленькому ребенку, спрашивающему почему небо голубое, рассказывать про рассеяние Рэлея; неадекватно использовать LINQ там, где прекрасно работает простой цикл, а на LINQ'е приходится извращаться и увеличивать сложность алгоритма.
При этом LINQ, безусловно, отличная вещь.
R>>ню-ню. время программиста, который для проверки упорядоченности массива его сортирует, а потом сравнивает (в оригинале такое чудо есть), должно оцениваться по ОТРИЦАТЕЛЬНОЙ ставке . G>С чего ты взял? Задачу то он выполняет. G>И такая проверка закончится быстрее, чем будет написан цикл.
извините, но это уже на профнепригодность тянет ;(
Вы вообще в курсе что массивы бывают большие? И что замена алгоритма сложностью O(n) на O(n*n) запросто приводит к тому, что на маленьких тестовых примерах у девелопера все работает нормально, а в реальной жизни, на реальных больших данных у юзера все фатально тормозится и виснет. Причем ладно бы замена хоть как-то упрощала жизнь, а то просто тупое вредительство...
R>>Для иллюстрации достаточно на WinMobile в тамошнем ворде открыть plain text на пару мегабайт -- тоже небось чье-то индусское время очень дорого стоило... G>Совсем не понял как это связано с проверкой упорядоченности массива.
самым что ни на есть прямым образом -- word на winmobile отличный (и, к сожалению, очень далеко не единственный) пример того, к чему приводит безмозглое программирование без понимания.
Re[7]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, vitasR, Вы писали:
R>Здравствуйте, gandjustas, Вы писали:
R>>>>>его вариант на самом деле лучший, самый понятный и самых быстрых (только проверку на пустой массив надо приделать). G>>>> G>>>>Скажи по-русски что такое отсортированный массив.
R>>>???
G>>Чего непонятного. Приведи определение отсортированного массива (последовательности чисел в общем случае)
R>Вы не знаете что такое отсортированный массив?
Не включай еврея, просто скажи свое определение, а потом попытаемся его выразить в коде.
G>>Как это относится к вопросу? G>>Ты не путай общность "архитекруры" и общность алгоритма. Второе всегда лучше, первое — спорно.
R>любая задача должна решаться адекватными средствами. Неадекватно отстреливать воробьев из пушек, неадекватно маленькому ребенку, спрашивающему почему небо голубое, рассказывать про рассеяние Рэлея; неадекватно использовать LINQ там, где прекрасно работает простой цикл, а на LINQ'е приходится извращаться и увеличивать сложность алгоритма.
Эмоциональная херня, LINQ — всего лишь вызовы функций, циклы гораздо сложнее, особенно for.
R>>>ню-ню. время программиста, который для проверки упорядоченности массива его сортирует, а потом сравнивает (в оригинале такое чудо есть), должно оцениваться по ОТРИЦАТЕЛЬНОЙ ставке . G>>С чего ты взял? Задачу то он выполняет. G>>И такая проверка закончится быстрее, чем будет написан цикл.
R>извините, но это уже на профнепригодность тянет ;(
Это правда жизни.
R>Вы вообще в курсе что массивы бывают большие?
Там где массивы большие, там алгоритмы сильно другие.
R>И что замена алгоритма сложностью O(n) на O(n*n) запросто приводит к тому, что на маленьких тестовых примерах у девелопера все работает нормально, а в реальной жизни, на реальных больших данных у юзера все фатально тормозится и виснет. Причем ладно бы замена хоть как-то упрощала жизнь, а то просто тупое вредительство...
Еще раз. Простая версия алгоритма уже закончит выполнятся до того как будет написана оптимизированная.
Остальные предположения надо сначала профайлером проверить.
Кстати прочитай у Липперта поты с тегом Linq (если не знаешь что это, то наверное ты зря тут пишешь). Там и про Linq и про оптимизацию и прочую фигню есть.
R>>>Для иллюстрации достаточно на WinMobile в тамошнем ворде открыть plain text на пару мегабайт -- тоже небось чье-то индусское время очень дорого стоило... G>>Совсем не понял как это связано с проверкой упорядоченности массива. R>самым что ни на есть прямым образом -- word на winmobile отличный (и, к сожалению, очень далеко не единственный) пример того, к чему приводит безмозглое программирование без понимания.
Напиши лучше, ругать все горазды.
Re[3]: Помогает ли Linq сделать код понятнее или быстрее?
FR>Много недостатков алгоритм даже не квадратичный, "if" вместо оператора "?" мутабельный e нет рекурсии, в общем незачет
Извини, ты ничего не понял. Тут вся соль в том, что это обычный, простецкий, прямолинейный, кондовый, понятный любому нубу и быдлокодеру вульгарный императивный код, просто отформатированный идиотским образом, и, что характерно, он при беглом взгляде напоминает фрагмент типичного произведения обитателей "мирка".
Собрался ставить минус? Да сам иди в жопу!
.
Re[3]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, 0K, Вы писали:
IT>>Хотя бы в том, что твой пример без Linq упадёт на пустой последовательности. 0K>А ваш пример на Linq для пустой последовательности выдаст true или false? Значение для пустой последовательности не определено -- это зависит от логики программы. По этому проверку я не включал.
True или False — это поведение. Невключение проверки — это бага. И, кстати, лучше с этим не спорить.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, SpaceConscience, Вы писали:
SC>Извини, ты ничего не понял. Тут вся соль в том, что это обычный, простецкий, прямолинейный, кондовый, понятный любому нубу и быдлокодеру вульгарный императивный код, просто отформатированный идиотским образом, и, что характерно, он при беглом взгляде напоминает фрагмент типичного произведения обитателей "мирка".
Это я понял, но ты же свои же рекомендации насчет эффективности не выполнил, так что все-равно незачет
Ну и мирок твой куда-то в сторону перла вытягивается, у функциональщиков однострочники точно давно не в моде
Re: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, Lloyd, Вы писали:
L>При больших объемах данные как правило получаются кусками, а не целиком
0K>>А раз в ОЗУ, то лучше массив.
L>А раз кусками, то не лучше.
Ну если уж на то пошло, то данные, получаемые кусками, никто не мешает хранить в массиве, особенно если массив динамический.
With best regards
Pavel Dvorkin
Re: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Lloyd, Вы писали:
L>>При больших объемах данные как правило получаются кусками, а не целиком
0K>>>А раз в ОЗУ, то лучше массив.
L>>А раз кусками, то не лучше.
PD>Ну если уж на то пошло, то данные, получаемые кусками, никто не мешает хранить в массиве, особенно если массив динамический.
Ага, дико эффективное решение.
Re[8]: Помогает ли Linq сделать код понятнее или быстрее?
PD>>Ну если уж на то пошло, то данные, получаемые кусками, никто не мешает хранить в массиве, особенно если массив динамический.
G>Ага, дико эффективное решение.
И что же тут неэффективного, можно пояснить ? Разумееется, под динамическим массивом понимается не то убожество, которое есть во многих средах, а механизм резервирования и коммитирования памяти, когда изменение размера производится всегда без переаллокации.
With best regards
Pavel Dvorkin
Re[7]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Ну если уж на то пошло, то данные, получаемые кусками, никто не мешает хранить в массиве, особенно если массив динамический.