Files
hello-algo/ru/docs/chapter_introduction/what_is_dsa.md
Yudong Jin 22b3b568ef fix Ru translation (#1894)
* docs(ru): replace prose quotes with guillemets

* docs(ru): replace prose semicolons with periods

* docs(ru): align animation title forms

* docs(ru): align figure and table references
2026-04-14 18:10:12 +08:00

6.2 KiB
Raw Blame History

Что такое алгоритм

Определение алгоритма

Алгоритм (algorithm) - это набор инструкций или шагов, предназначенных для решения конкретной задачи за ограниченное время. Он обладает следующими свойствами.

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

Определение структуры данных

Структура данных (data structure) - это способ организации и хранения данных, включающий содержимое данных, их взаимосвязи и методы операций с ними. Структура данных преследует следующие цели.

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

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

  • Связный список, по сравнению с массивом, более удобен для добавления и удаления данных, но имеет проблемы со скоростью доступа к данным.
  • Граф, по сравнению со связным списком, предоставляет более богатую логическую информацию, но требует большего объема памяти.

Связь между структурами данных и алгоритмами

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

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

Связь между структурами данных и алгоритмами

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

Сборка конструктора

Подробное описание аналогии с конструктором представлено в таблице ниже.

Таблица   Сравнение структур данных и алгоритмов с конструктором

Структуры данных и алгоритмы Конструктор
Входные данные Несобранные детали конструктора
Структура данных Организация деталей конструктора, включая форму, размер, способы соединения и т. д.
Алгоритм Последовательность действий по сборке деталей в целевую модель
Выходные данные Собранная модель конструктора

Стоит отметить, что структуры данных и алгоритмы не зависят от языка программирования. Именно поэтому данная книга предлагает их реализации на различных языках.

!!! tip "Принятое сокращение"

В реальных обсуждениях выражение «структуры данных и алгоритмы» обычно сокращают до просто «алгоритмы». Например, хорошо известные задачи LeetCode на деле одновременно проверяют знания и по структурам данных, и по алгоритмам.