Библиотека knigago >> Компьютеры: Языки и системы программирования >> Python >> Грокаем алгоритмы


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2021, книга: Подземный гром
автор: Джек Линдсей

"Подземный гром" Джека Линдсея - это захватывающий исторический приключенческий роман, который переносит читателя в бурный мир древней Греции. Действие романа разворачивается в 5 веке до нашей эры, во время греко-персидских войн. Неумолимая персидская армия вторгается в Грецию, угрожая ее свободе и независимости. В этой эпической борьбе мы следим за судьбами нескольких незабываемых персонажей. Главный герой, Никос, молодой спартанский воин, предан своей стране и своему долгу. Он...

Адитья Бхаргава - Грокаем алгоритмы

Иллюстрированное пособие для программистов и любопытствующих Грокаем алгоритмы
Книга - Грокаем алгоритмы.  Адитья Бхаргава  - прочитать полностью в библиотеке КнигаГо
Название:
Грокаем алгоритмы
Адитья Бхаргава

Жанр:

Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Алгоритмы и структуры данных, Python

Изадано в серии:

Библиотека программиста

Издательство:

Питер

Год издания:

ISBN:

978-5-4461-0923-4

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Грокаем алгоритмы"

Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.
К этой книге применимы такие ключевые слова (теги) как: Искусство программирования, Обучение программированию, Просто о сложном, Эффективные алгоритмы

Читаем онлайн "Грокаем алгоритмы" (ознакомительный отрывок). [Страница - 4]

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


Что вы узнаете о решении задач

Вы освоите методы решения задач, которые вам сейчас, возможно, неизвестны. Примеры:

• Если вы любите создавать видеоигры, вы можете написать систему на базе искусственного интеллекта, моделирующую действия пользователя с применением алгоритмов из теории графов.

• Вы узнаете, как построить рекомендательную систему на базе k ближайших соседей.

• Некоторые проблемы не решаются за разумное время! В части книги, посвященной NP-полноте задач, рассказано о том, как идентифицировать такие задачи и построить алгоритм для получения приближенного ответа.

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


Что необходимо знать

Чтобы читать эту книгу, необходимо знать базовую алгебру. Например, возьмем следующую функцию: f (x) = x × 2. Чему равен результат f(5)? Если вы ответили «10» — читайте спокойно.

Кроме того, вам будет проще понять эту главу (и всю книгу), если вы владеете хотя бы одним языком программирования. Все приведенные примеры написаны на Python. Если вы не знаете ни одного языка программирования, но хотите изучить — выбирайте Python: это отличный язык для начинающих. Если вы уже знаете другой язык (скажем, Ruby) — все в порядке.


Бинарный поиск

Предположим, вы ищете фамилию человека в телефонной книге (какая древняя технология!). Она начинается с буквы «К». Конечно, можно начать с самого начала и перелистывать страницы, пока вы не доберетесь до буквы «К». Но скорее всего для ускорения поиска лучше раскрыть книгу на середине: ведь буква «К» должна находиться где-то ближе к середине телефонной книги.

Или предположим, что вы ищете слово в словаре, и оно начинается с буквы «О». И снова лучше начать с середины.

Теперь допустим, что вы вводите свои данные при входе на Facebook. При этом Facebook необходимо проверить, есть ли у вас учетная запись на сайте. Для этого ваше имя пользователя нужно найти в базе данных. Допустим, вы выбрали себе имя пользователя «karlmageddon». Facebook может начать с буквы A и проверять все подряд, но разумнее будет начать с середины.

Перед нами типичная задача поиска. И во всех этих случаях для решения задачи можно применить один алгоритм: бинарный поиск.

Бинарный поиск — это алгоритм; на входе он получает отсортированный список элементов (позднее я объясню, почему он должен быть отсортирован). Если элемент, который вы ищете, присутствует в списке, то бинарный поиск возвращает ту позицию, в которой он был найден. В противном случае бинарный поиск возвращает null.

Например:

Книгаго: Грокаем алгоритмы. Иллюстрация № 1 Ищем компанию в телефонной книге с применением бинарного поиска

Рассмотрим пример того, как работает бинарный поиск. Сыграем в простую игру: я загадал число от 1 до 100.

Книгаго: Грокаем алгоритмы. Иллюстрация № 2 Вы должны отгадать мое число, использовав как можно меньше попыток. При каждой попытке я буду давать один из трех ответов: «мало», «много» или «угадал».

Предположим, вы начинаете перебирать все варианты подряд: 1, 2, 3, 4 …. Вот как это будет выглядеть.

Книгаго: Грокаем алгоритмы. Иллюстрация № 3 Плохой способ угадать число

Это пример простого поиска (возможно, термин «тупой поиск» был бы уместнее). При каждой догадке исключается только одно число. Если я загадал число 99, то, чтобы добраться до него, потребуется 99 попыток!


Более эффективный поиск

Существует другой, более эффективный способ. Начнем с 50.

Книгаго: Грокаем алгоритмы. Иллюстрация № 4 Слишком мало… но вы только что исключили половину чисел! Теперь вы знаете, что все числа 1–50 меньше загаданного. Следующая попытка: 75.

--">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Книги схожие с «Грокаем алгоритмы» по жанру, серии, автору или названию:

Другие книги из серии «Библиотека программиста»:

SQL: быстрое погружение. Уолтер Шилдс
- SQL: быстрое погружение

Жанр: Базы данных

Год издания: 2022

Серия: Библиотека программиста

C++17 STL Стандартная библиотека шаблонов. Яцек Галовиц
- C++17 STL Стандартная библиотека шаблонов

Жанр: Базы данных

Год издания: 2018

Серия: Библиотека программиста