Первое знакомство со структурами данных и алгоритмами может показаться новичку пугающим и сложным. Но каждый хороший программист должен иметь хорошее представление о структурах данных и алгоритмах, потому что каждая часть программного обеспечения обрабатывает, обрабатывает и отображает данные.
Как программисты, наша работа заключается в выполнении операций с данными, мы в основном выполняем следующие три шага:
- Примите участие
- Обработайте это
- Отдайте вывод.
Ввод может быть в любой форме, например. при входе в свою электронную почту вы вводите свой адрес электронной почты и пароль в качестве входных данных. Точно так же на третьем этапе компьютерное приложение дает нам вывод в той или иной форме, в данном случае это ваш почтовый ящик.
Чтобы сделать этот процесс эффективным, нам нужно оптимизировать все три шага. Максимум, что мы можем оптимизировать, — это второй шаг, на котором у нас есть структуры данных и алгоритмы.
Что такое структуры данных?
Структуры данных — это способ упорядоченного хранения данных. Они определяют связь между данными и операциями, которые можно выполнять над данными. Например, у нас есть некоторые данные, которые имеют имя ученика «Питер» и возраст 19 лет. Здесь «Питер» имеет тип данных String. а 26 имеет целочисленный тип данных. Мы можем организовать эти данные, например запись Student, которая будет содержать как имя, так и возраст учащегося, и хранить их в файле или базе данных в виде структуры данных, например. «Питер» 19, «Карла» 21, «Дрейк» 21.
Проще говоря, структуры данных — это структуры, запрограммированные для хранения упорядоченных данных, чтобы с ними можно было легко выполнять различные операции. Он представляет собой знание данных, которые должны быть организованы в памяти. Он должен быть разработан и реализован таким образом, чтобы уменьшить сложность и повысить эффективность.
Примитивные структуры данных
Примитивная структура данных — это способ хранения данных, который заранее определен системой. Это самые основные структуры данных. Они являются строительными блоками для манипулирования данными и содержат чистые, простые значения данных. Одна отличная лакмусовая бумажка для примитивных структур данных или примитивных типов, когда работа с языком ООП включает проверку того, используется ли ключевое слово для объявления переменной, которая используется для хранения этих данных. .
- Целые числа
- Плавать
- Струны
- логический
Непримитивные структуры данных
Непримитивные или определяемые пользователем структуры данных — это почти любая структура данных, созданная с использованием классов. В качестве основы они используют встроенные функции языка и примитивные структуры данных. Эти типы являются сложными членами семейства структур данных. Они не просто хранят значение, а набор значений в различных форматах.
- Массивы
- Списки (Линейные списки – стеки, очереди, Нелинейные списки – деревья, графики)
- Файлы
Все эти структуры данных позволяют нам выполнять различные операции с данными. Мы выбираем эти структуры данных в зависимости от того, какой тип операции требуется.
Алгоритмы
Неформально алгоритм — это причудливый список дел для компьютера. Технически это конечный набор инструкций или логики, написанных для выполнения определенной заранее определенной задачи. Алгоритм — это не полный код или программа, это просто основная логика (решение) проблемы, которая может быть выражена либо в виде неформального высокоуровневого описания в виде псевдокода, либо с использованием >блок-схема.
Хороший алгоритм должен удовлетворять следующим свойствам:
- Ввод — получает 0 или более входных данных.
- Вывод. Должен быть хотя бы один вывод.
- Определенность. Каждый шаг алгоритма должен быть четким и четко определенным (точно сформулированным).
- Конечность. Алгоритм должен иметь конечное число шагов.
- Правильность. Каждый шаг алгоритма должен давать правильный результат.
Хороший сценарий алгоритма — это рецепт, потому что он говорит вам, что вам нужно делать шаг за шагом. Он принимает входные данные (ингредиенты), процедуру/этапы (способ приготовления) и производит результат (готовое блюдо).
Алгоритм считается эффективным и быстрым, если его выполнение занимает меньше времени и занимает меньше памяти. Производительность алгоритма измеряется на основе следующих свойств:
- Сложность времени-
Это способ представить количество времени, необходимое программе для выполнения до ее завершения. Как правило, рекомендуется стараться поддерживать минимальное время, необходимое для того, чтобы наш алгоритм завершил свое выполнение в кратчайшие сроки.
2. Космическая сложность
Это объем памяти, требуемый алгоритму в ходе его выполнения. К сложности пространства следует относиться серьезно в ситуациях, когда доступна ограниченная память.