Об основах алгоритмов сортировки в иллюстрациях |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-10-10 15:10 Перевод простого гайда по алгоритмам сортировки, разобранным по винтикам и разложенным по полочкам! Если вы не знакомы с информатикой или являетесь совсем новичком в программировании, перспектива глубокого погружения в алгоритмы может казаться не очень радужной. А кого-то, возможно, даже напугает. Но не стоит поджимать хвост, мы пройдем через это вместе и выйдем с большими знаниями, как настоящие эксперты! Давайте начнем с азов. Что такое алгоритм? Мы собираемся многое о них узнать, так что должны для начала знать определение, правильно? Алгоритм — это набор инструкций для машины, что и как ей делать. Другими словами, это руководство к вашему коду. И все. Наиболее часто используемым подмножеством множества алгоритмов являются алгоритмы сортировки, то есть инструкции, как программа или компьютер должны подойти к организации данных. Зачем разбираться? Важно четко понять, что есть сортировка, в частности, в терминах информатики, и какое значение она имеет. Каждому из нас приходилось сталкиваться с какой-либо формой упорядочивания различных предметов в повседневной жизни. Например, я недавно переехала, и даже несмотря на то, что я проделала неплохую работу, упаковывая вещи, осталась куча всего, создававшая абсолютный беспорядок. Кипу разнообразных бумажек я просто покидала в коробку в хаотичном порядке. Когда же пришло время распаковываться, все было вверх дном. Мне пришлось раскладывать их по страничке. Если вы читали об алгоритмах сортировки, то без труда заметите, что самыми простыми примерами могут послужить процессы упорядочивания карт, книг и тому подобного. Сортировки исключительно полезны по двум причинам:
Вернувшись к моему примеру, попробуйте представить, как трудно было бы найти определенную страницу в перемешанной кипе из около 200 листов. Реализация Что ж, я смею надеяться, что теперь понятие сортировок вышло для читателя на бытовой уровень. Но как это реализуется в компьютерах? Они не жалуются на скорость выполнения операций, да и читаемость в человеческом понимании их волнует мало. Так чем же сортировки могут быть полезны машинам? В этом случае сортировки также играют важную роль, поскольку данные, которые компьютер, программа или приложение должны обработать, могут быть очень большого объема. Причем это далеко не всегда ограничивается тем, что под термином «объемный» может представить себе человек. Давайте конкретизируем, что именно мы понимаем под сортировкой с точки зрения информатики. Сортировка — это организация некоторого набора данных одного типа по какому-то принципу. Здесь нужно выделить два основных момента:
Теперь давайте поговорим о том, как в компьютерах используется сортировка. Почему упорядоченные данные лучше? Подобно тому, как для человека они являются более удобными для восприятия, машине они тоже существенно упрощают существование. В данном примере мы имеем небольшой массив неупорядоченных чисел. Представьте, что нам нужно найти, например, число 33, не зная заранее, где оно расположено. Или вообразите более драматичный сценарий: нужно найти число, которого вообще нет в списке! В худшем случае мы бы перебрали каждый элемент до конца, и осознали бы, что искомого нет. Другими словами, эта операция заняла бы линейное время. Но что, если бы в массиве было 100 миллионов чисел? Или миллиард? Не паникуйте Если приведенный выше пример вам знаком, то это все благодаря тому, что перед вами наш старый добрый бинарный поиск. Он требует логарифмического времени. Именно так компьютер использует сортировки. Бинарный поиск прекрасно справляется с задачами вставки, удаления, чтения и извлечения данных из массива, даже если в нем миллиард элементов. Классификация алгоритмов Теперь, когда мы разобрались с определением сортировки и поняли, зачем она нужна, самое время разложить по полочкам различные алгоритмы, которые используются чаще всего. Давайте детально рассмотрим шесть основных критериев классификации алгоритмов сортировки.
*In-place: операции производятся непосредственно в памяти, содержащей входные данные; *ut-of-place: для операций выделяется отдельный участок памяти.
Источник: m.vk.com Комментарии: |
|