В одном из моих недавних проектов столкнулся с проблемой: в большом приложении, над которым работают десятки разработчиков, необходимо было обеспечить единообразный порядок импортов. Несмотря на то, что команда договорилась о том, в каком порядке импортировать модули, компоненты, директривы, миксины и прочее, в старом коде порядок импортов отличался, и его ручной рефакторинг оказался слишком трудоёмким и затратным по времени.
Рубрика «sorting»
Как я решил проблему гибкого управления порядком импортов в большом проекте
2025-02-25 в 10:16, admin, рубрики: eslint, eslint-plugin-import, eslint-plugin-import-group, import, javascript, sortingПод капотом сортировок в STL
2020-10-08 в 13:23, admin, рубрики: algorithms, c++, c++11, C++14, c++17, sorting, Алгоритмы, Блог компании Mail.Ru Group, ПрограммированиеСтандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алгоритмы и структуры данных имели ввиду авторы стандарта, указывая ограничения для той или иной сортировки и для некоторых других алгоритмов. А так же как эти алгоритмы реализованы на практике.
При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов.
Эффективная сортировка данных типа Struct
2020-01-02 в 10:28, admin, рубрики: comparison, Elixir/Phoenix, sortingВсе, пришедшие в Elixir / Erlang из других языков, скорее всего, имеют некоторые ожидания относительно того, как должны работать операторы сравнения >
, <
, ==
и т. п. Можно было бы ожидать, что 1 < 2
, (и это действительно так). В принципе, можно сказать, что сравнение работает как надо. Но не всегда.
В Elixir / Erlang можно сравнивать все что угодно. Вообще. В то время как для двух операндов одного типа результат не обескураживает, как в приведенном выше примере, сравнение двух операндов разных типов приводит к довольно неожиданным последствиям. Потому что сами по себе типы «упорядочены для сравнения». Вот таким образом:
number < atom < reference < function < port < pid < tuple < map < list < bitstring
Что внезапно приводит к тому, что полностью легитимное сравнение 42 < nil
возвращает true
.
«5 копеек» к разговору о Cортировках
2019-09-30 в 11:00, admin, рубрики: C, c++, sort, sorting, Алгоритмы, высокая производительность, Программирование, сортировка, сортировкиВ продолжение темы хочу поделиться своим кодом, который обгоняет std::sort()
из актуальных версий GNU C++ Library и (примерно, нет точных данных) повторяет результат "Сортировки Александреску" с CppCon 2019.
Мои любимые примеры функционального программирования в языке Kotlin
2018-08-17 в 15:27, admin, рубрики: android, collections, devcolibri, functional, java, kotlin, sorting, джава, коллекции, никто не читает теги, Программирование, разработка, сортировка, функциональное программированиеОдной из замечательных особенностей Kotlin является то, что он поддерживает функциональное программирование. Давайте посмотрим и обсудим некоторые простые, но выразительные функции, написанные на языке Kotlin.
Анализ использования избыточности данных в качестве требуемой дополнительной памяти при сортировке алгоритмом слияния
2016-09-27 в 12:39, admin, рубрики: benchmark, c++, merge sort, sorting, Алгоритмы, алгоритмы сортировки, бенчмарки, сортировка слияниемАлгоритмы сортировки
В этой статье речь пойдет о сравнении некоторых алгоритмов сортировки, реализованных на C++ для последовательности не упакованных BCD чисел большого размера.
Данный анализ я проводил в качестве летней практики в компании «Программные технологии».
Сортируемая последовательность не имеет заголовка, числа в ней имеют различную разрядность и хранятся без выравнивания. Между числами стоят разделители (0xFF).
Для осуществления сортировки с помощью библиотечной функции вводится дополнительный уровень данных – контейнер, содержащий указатели на области памяти, каждая из которых содержит одно BCD число. В сравнении участвуют:
1. Сортировка слиянием;
2. Сортировка слиянием без использования буфера;
3. Естественная сортировка слиянием;
4. Естественная сортировка слиянием без использования буфера;
5. Модифицированная естественная сортировка слиянием;
6. Модифицированная естественная сортировка слиянием без использования буфера;
7. std::sort.