- Видео 7
- Просмотров 3 931
Frontend JS
Добавлен 12 янв 2023
Пирамидальная сортировка ( сортировка кучей , heap sort ) JavaScript.
Пирамидальная сортировка JS - это алгоритм сортировки основанный на сравнении элементов и реализован с использованием абстрактной структуры данных "Куча". Сложность алгоритма постоянная O(n log n).
Некоторые известные проекты, использующие сортировку кучей:
Среда разработки программного обеспечения Eclipse использует сортировку кучей для сортировки элементов в дереве проектов.
Алгоритм сортировки кучей используется во многих реализациях стандартной библиотеки языка программирования С++.
Многие базы данных, такие как PostgreSQL, используют сортировку кучей для сортировки больших объемов данных.
Веб-браузер Mozilla Firefox использует сортировку кучей для сортировки объектов JavaScript.
Алго...
Некоторые известные проекты, использующие сортировку кучей:
Среда разработки программного обеспечения Eclipse использует сортировку кучей для сортировки элементов в дереве проектов.
Алгоритм сортировки кучей используется во многих реализациях стандартной библиотеки языка программирования С++.
Многие базы данных, такие как PostgreSQL, используют сортировку кучей для сортировки больших объемов данных.
Веб-браузер Mozilla Firefox использует сортировку кучей для сортировки объектов JavaScript.
Алго...
Просмотров: 894
Видео
Двоичный(бинарный) поиск (binary search) JavaScript.
Просмотров 177Год назад
Двоичный (бинарный) поиск (binary search) - очень быстрый алгоритм поиска. Его сложность O(log n). Данный алгоритм используется часто в программировании в различных системах. Единственный его минус это то, что массив данных должен быть отсортирован. В противном случае смысл алгоритма теряется. Алгоритмы на JavaScript. Исходники сортировки здесь: github.com/kolabiz/Algorith-JS-RUclips/blob/main/...
Линейный поиск (linar search) JavaScript.
Просмотров 111Год назад
Линейный поиск (linar search) - самый простой алгоритм поиска. Его сложность O(n) и зависит лишь от размера массива. Данный алгоритм используется в программировании, когда сортировка массива бессмысленна и поиск необходимо сделать лишь однажды. Алгоритмы на JavaScript. Исходники сортировки здесь(если вдруг они могут понадобится): github.com/kolabiz/Algorith-JS-RUclips/blob/main/linerSearch.js
Сортировка слиянием (merge sort) JavaScript.
Просмотров 1,2 тыс.2 года назад
Сортировка слиянием (merge sort) - первый в нашей серии быстрых алгоритмов сортировки. Работает по схеме "Разделяй и Властвуй". Его сложность O(n * log n). Данный алгоритм уже используется практически в реальном программировании, в высоко нагруженных системах. Из примеров можно привести СУБД MySql, там с его помощью реализована операция ORDER BY при отсутствии подходящего индекса. Алгоритмы на ...
Сортировка вставками (insertion sort) JavaScript
Просмотров 6172 года назад
Сортировка вставками (insertion sort) - последний в нашей серии простых алгоритмов сортировки. Алгоритмы на JavaScript.
Сортировка выбором (selection sort) JavaScript
Просмотров 5112 года назад
Сортировка выбором (selection sort) - еще один из простых алгоритмов сортировки. Также его называют алгоритм MIN MAX. Алгоритмы на JavaScript.
Сортировка пузырьком (BubbleSort) JavaScript
Просмотров 4682 года назад
Сортировка пузырьком (BubbleSort) - один из самых простых алгоритмов сортировки. Алгоритмы на JavaScript.
весьма доступно и понятно объясняется материал, спасибо автору
А разве это правильная реализация сортировки вставкой? В сортировке вставкой элементы должны смещаться уступая место более мелкому элементу(к примеру). Тогда как в этой реализации не уступает, а меняет местами соседние элементы как в баблсорте.
Алгоритм реализован правильно, здесь именно это и происходит то о чем вы пишете, программно этот сдвиг мы реализуем с помощью обмена. И да они похожи с баблсорт. Только этот чуть быстрее.
дико полезный видос. Благодарю автора за труд!
Не знаю как насчет кода, но по голосу могу сходу дать Сеньора
Помидора)
Здраствуйте! На сколько я понял из объяснения, при сравнивание подмасивов в цикле, в одной из частей остается только 1 элемент, зачем мы тогда после этого добавляем его через метод concat (который делает копию массива и запускает цикл for) зачем такие затраты, можно по индесам же определить где остался элемент и запушить его? Как поведет себя slice(i, arr.length/2) если длинна массива будет не четная и деление произойдет с остатком ? (или это просто техническая ошибка) Процесс рекурсивного вызова происходит синхронно ( имеет ли смысл сделать этот процесс асинхронным )
Мутирование плохая практика, поэтому и новые массивы создают
Не совсем понял первого замечания и о каком цикле for вы говорите, но могу точно сказать, что не факт, что там остался один элемент, и concat не делает копию массива, он копируют только ссылки на элементы. Slice сам обрежет дробную часть, даже если туда прямо передать дробь. Мутировать, как вам уже ответили массив плохо, если это не задано условием задачи. О асинхронности не могу вам ничего сказать, мне кажется вы говорите о многопоточности как например в си шарп. Этот алгоритм не встречал в таких реализациях, но думаю, если речь пойдет об оптимизации, то да наверное это возможно.
А будут еще видео? Вы очень хорошо объясняете?
Будут. Но ближе к октябрю. Пока завал по работе.
Как всегда спасибо за видео
Пожалуйста) Рад, что вам понравилось)
спасибо, наконец-то дошло