Алгоритмы и структуры данных на Python - Cuantum Technologies - E-Book

Алгоритмы и структуры данных на Python E-Book

Cuantum Technologies

0,0

Beschreibung

Представьте, что вы не просто программируете, а создаете элегантные решения, обладая глубоким пониманием алгоритмов и структур данных. Откройте же мощь алгоритмического мышления с помощью Python. Разберитесь в алгоритмах и структурах данных с нуля до продвинутого уровня и применяйте знания в реальном мире. Кем бы вы ни были — начинающим программистом, опытным разработчиком, желающим расширить знания, или специалистом с нетехническим образованием, интересующимся анализом данных, — книга поможет улучшить понимание и навыки решения задач.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 365

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчик Л. Ларин А. И.

Cuantum Technologies

Алгоритмы и структуры данных на Python. — СПб.: Питер, 2024.

ISBN 978-5-4461-4131-9

© ООО Издательство "Питер", 2024

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Кто мы
Наша философия
Наш опыт
Исходный код примеров
От издательства
Введение
О чем эта книга
Структура издания
Для кого эта книга
Ваше путешествие начинается
Часть I. Знакомство с Python и основные структуры данных
Глава 1. Введение в Python и алгоритмы
1.1. Назначение алгоритмов и структур данных
1.2. Эволюция программирования
1.3. Python и алгоритмы
1.4. Роль Python в разработке алгоритмов
Практические упражнения
Резюме
Глава 2. Погружение в Python
2.1. Основы синтаксиса Python
2.2. Типы данных и операторы
2.3. Управляющие структуры и функции
Практические упражнения
Резюме
Глава 3. Простые контейнеры данных
3.1. Списки, кортежи, множества и словари
3.2. Объектно-ориентированное программирование: классы, объекты и инкапсуляция
3.3. Стеки, очереди и их применение
3.4. Связанные списки: указатели, узлы и их применение
Практические упражнения
Резюме
Проект 1. Базовый калькулятор
Настройка основного фреймворка
Реализация арифметических функций
Интеграция арифметических функций с основным фреймворком
Улучшение пользовательского опыта
Добавление расширенных арифметических функций
Добавление расширенных функций
Функции памяти
Улучшение интерфейса пользователя и опыта взаимодействия с данным интерфейсом
Часть II. Сортировка, поиск и иерархические структуры
Глава 4. Сортировка
4.1. Основные алгоритмы сортировки
4.2. Расширенная сортировка
4.3. Анализ временной сложности и производительности
Практические упражнения
Резюме
Глава 5. Поисковые операции и эффективность
5.1. Линейный и бинарный поиск
5.2. Хеширование
5.3. Хеш-таблицы: реализация и разрешение коллизий
5.4. Временная сложность и нотация «O большое»
Практические упражнения
Резюме
Глава 6. Деревья и графы: иерархические структуры данных
6.1. Деревья: типы и методы обхода
6.2. Графы: представление и основные алгоритмы
Практические упражнения
Резюме
Тесты к части II
Проект 2. Приложение для списка контактов
Реализация базовой структуры
Добавление функции поиска
Добавление функции удаления
Перечисление всех контактов
Будущие улучшения
Часть III. Расширенные алгоритмические методы и сетевые структуры
Глава 7. Освоение алгоритмических методов
7.1. Стратегия «разделяй и властвуй»
7.2. Динамическое программирование
7.3. Жадный подход и поиск с возвратом
Практические упражнения
Резюме
Глава 8. Сети и пути: расширенные графовые алгоритмы
8.1. Глубокое погружение в теорию графов
8.2. Алгоритмы для поиска кратчайших путей, потоков и связности
8.3. Оптимизация сетей и передовые графовые методы
Практические упражнения
Резюме
Тесты к части III
Проект 3. Приложение для прокладки маршрутов на основе карты
Настройка графа для карты
Реализация алгоритма Дейкстры
Взаимодействие с пользователем и обработка ввода
Работа с картографическими данными реального мира
Графический интерфейс для визуализации (необязательно)
Чего мы достигли
Часть IV. Обработка строк, расширенные концепции и практическое применение
Глава 9. Расшифровка строк и образцов
9.1. Строковые алгоритмы
9.2. Поиск по образцу, префиксные и суффиксные деревья
9.3. Передовые методы сопоставления с образцом и анализа текста
Практические упражнения
Резюме
Глава 10. Сложные вычислительные задачи
10.1. NP-трудные и NP-полные классы
10.2. Аппроксимирующие и рандомизированные алгоритмы
10.3. Сложные алгоритмы в теории графов и анализе сетей
Практические упражнения
Резюме
Глава 11. От теории к практике. Практические примеры и оптимизация
11.1. Практические примеры. Реальные алгоритмические решения
11.2. Улучшение производительности Python
Практические упражнения
Резюме
Тесты к части IV
Проект 4. Система обнаружения плагиата
Предварительная обработка текста и измерение сходства
Работа с большими документами и анализ на уровне абзацев
Использование передовых методов анализа текста
Будущие улучшения
Заключение
Узнайте больше о нас

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

Марк Кьюбан, предприниматель и инвестор

Кто мы

Cuantum Technologies — ведущая инновационная компания в сфере разработки программного обеспечения (ПО) и образования, уделяющая особое внимание использованию возможностей искусственного интеллекта и передовых технологий.

Мы специализируемся на разработке ПО для веб-приложений, написании литературы по программированию и искусственному интеллекту, а также на создании привлекательных веб-приложений с использованием HTML, CSS, JavaScript и Three.js. В наш разнообразный ассортимент продуктов входят CuantumAI — инновационное предложение SaaS (software as a service — программное обеспечение как услуга) — и множество книг, посвященных Python, NLP, PHP, JavaScript и др.

Наша философия

Цель Cuantum Technologies — в разработке инструментов, которые позволяют людям улучшать свою жизнь с помощью искусственного интеллекта и новых технологий. Мы верим, что технологии — не просто инструмент, а средство, способствующее позитивным изменениям и развитию всех аспектов нашей жизни.

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

Наш опыт

У нас богатый опыт использования технологий. С одной стороны, мы умеем создавать SaaS, такие как CuantumAI, и благодаря своим обширным знаниям и навыкам в области веб-разработки стараемся предлагать передовые и интуитивно понятные приложения. Мы стремимся использовать потенциал искусственного интеллекта для решения практических задач и повышения эффективности бизнеса.

С другой стороны, мы — преподаватели, преданные своему делу. Наши книги дают глубокое представление о различных языках программирования и искусственном интеллекте и помогают новичкам и опытным программистам расширить свои знания и навыки. Мы гордимся своим умением эффективно распространять знания, излагая сложные концепции понятным языком.

Более того, наше мастерство в создании интерактивных веб-интерфейсов не имеет себе равных. Используя сочетание HTML, CSS, JavaScript и Three.js, мы создаем захватывающую и привлекательную цифровую среду, которая очаровывает пользователей и выводит их опыт работы онлайн на новый уровень.

Сотрудничая с Cuantum Technologies, вы не просто получаете услугу или продукт — вы вступаете вместе с нами в будущее, где каждый желающий сможет улучшать свою жизнь с помощью технологий и искусственного интеллекта.

Исходный код примеров

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

https://books.cuantum.tech/algorithms-data-structures/code/

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

Введение

Приветствуем, дорогие читатели! Добро пожаловать в увлекательное путешествие по миру алгоритмов на Python! Эта книга поможет вам изучить фундаментальные концепции алгоритмического мышления и перейти к их практическому применению в реальных задачах.

О чем эта книга

В цифровую эпоху, когда данные играют ключевую роль, а навыки решения задач имеют первостепенное значение, понимание алгоритмов перестает быть просто учебной задачей и превращается в важнейший компонент профессио­нального инструментария. Наша книга призвана помочь вам всесторонне изучить алгоритмы, созданные с учетом возможностей Python. Этот язык известен своей простотой, читабельностью и элегантностью, благодаря чему он служит отличной средой для изучения алгоритмов, позволяя сосредоточиться на базовых концепциях, а не увязать в сложном синтаксисе. Python помогает новичкам научиться программировать, а профессионалам открывает много новых возможностей, поэтому идеально подходит для широкого круга читателей.

Эта книга не просто сборник тем. Читая ее, вы сможете погрузиться в интер­активный учебный процесс. Главы содержат множество примеров. В конце частей II–IV даны тесты, а в конце каждой главы — практические упражнения. Все это поможет вам закрепить полученные знания, более глубоко понять описанные нами концепции и улучшить навыки решения задач.

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

Структура издания

Книга написана так, чтобы вы могли плавно погружаться в тему алгоритмов, постепенно все более глубоко разбираясь в них.

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

• В части II вы изучите алгоритмы сортировки и поиска, поймете принципы их работы и узнаете, почему эффективность имеет значение. Мы поговорим об иерархических структурах данных, таких как деревья и графы, которые являются неотъемлемой частью представления сложных взаимосвязей в данных.

• В части III вы познакомитесь с более сложными алгоритмическими стратегиями, такими как «разделяй и властвуй», динамическое программирование и жадные алгоритмы. Кроме того, мы рассмотрим расширенные графовые алгоритмы, раскрывающие тонкости анализа сетей.

• В части IV вы сможете объединить теоретические знания с работой над реальными приложениями. Вы изучите строковые алгоритмы, погру­зитесь в сложные вычислительные задачи и поймете, как описанные в этой части концепции применяются в конкретных примерах и оптимизациях.

Для кого эта книга

Эта книга предназначена для всех, кто хочет узнать об алгоритмах. Вы студент факультета информатики, начинающий программист или разработчик, желающий более глубоко изучить алгоритмические концепции или усовершенствовать навыки программирования? А может быть, вы профессионал, работающий в нетехнологической области и изучающий анализ данных или автоматизацию? Или вы обычный человек и интересуетесь логикой, лежащей в основе сложных задач? Кем бы вы ни были — в этой книге для вас найдется что-то полезное. Из нее вы узнаете не просто о том, как научиться программировать, а о том, как писать код, который помогает учиться, решать задачи и создавать будущее, богатое возможностями.

Ваше путешествие начинается

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

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

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

Желаем успехов!

Часть I. Знакомство с Python и основные структуры данных