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

Как программисты, наша работа заключается в выполнении операций с данными, мы в основном выполняем следующие три шага:

  1. Примите участие
  2. Обработайте это
  3. Отдайте вывод.

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

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

Что такое структуры данных?

Структуры данных — это способ упорядоченного хранения данных. Они определяют связь между данными и операциями, которые можно выполнять над данными. Например, у нас есть некоторые данные, которые имеют имя ученика «Питер» и возраст 19 лет. Здесь «Питер» имеет тип данных String. а 26 имеет целочисленный тип данных. Мы можем организовать эти данные, например запись Student, которая будет содержать как имя, так и возраст учащегося, и хранить их в файле или базе данных в виде структуры данных, например. «Питер» 19, «Карла» 21, «Дрейк» 21.

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

Примитивные структуры данных

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

  • Целые числа
  • Плавать
  • Струны
  • логический

Непримитивные структуры данных

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

  • Массивы
  • Списки (Линейные списки – стеки, очереди, Нелинейные списки – деревья, графики)
  • Файлы

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

Алгоритмы

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

Хороший алгоритм должен удовлетворять следующим свойствам:

  1. Ввод — получает 0 или более входных данных.
  2. Вывод. Должен быть хотя бы один вывод.
  3. Определенность. Каждый шаг алгоритма должен быть четким и четко определенным (точно сформулированным).
  4. Конечность. Алгоритм должен иметь конечное число шагов.
  5. Правильность. Каждый шаг алгоритма должен давать правильный результат.

Хороший сценарий алгоритма — это рецепт, потому что он говорит вам, что вам нужно делать шаг за шагом. Он принимает входные данные (ингредиенты), процедуру/этапы (способ приготовления) и производит результат (готовое блюдо).

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

  1. Сложность времени-

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

2. Космическая сложность

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