Что такое структуры данных и алгоритмы?

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

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

Структура данных может быть представлена ​​как:

Алгоритм + Структура данных = программа

Что такое АЛГОРИТМ?

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

  • Вставка — элемент вставляется в структуру данных.
  • Сортировка — элемент сортируется (упорядочивается) в определенном порядке в структуре данных.
  • Поиск — поиск элемента в структуре данных.
  • Удалить — элемент удаляется из структуры данных.
  • Обновить – элемент обновляется в структуре данных.

Как написать алгоритм?

Ну, не существует четко определенной структуры для написания алгоритма. Алгоритмы никогда не пишутся как код для какого-либо конкретного языка программирования. Мы можем знать, что все языки программирования имеют общие базовые конструкции кода, такие как управление потоком (if, else); циклы (for, do, while) и т. д. Эти распространенные конструкции могут помочь вам в написании алгоритма.

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

Некоторые примеры приведены для лучшего понимания того, как написать алгоритм:

ПРИМЕР 1

Написать алгоритм сложения двух чисел

STEP 1 - start
STEP 2 - Read a, b
STEP 3 - Sum a+b
STEP 4 - print
STEP 5 - stop

ПРИМЕР 2

Проверьте право на получение водительских прав!

STEP 1 - start
STEP 2 - read age
STEP 3 - if age >= 18 then go to step_4 else step_5
STEP 4 - writ "The person is eligible to get a driving license"
STEP 5 - writ "The person is not eligible to get a driving licence"
STEP 6 - Stop

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

ПРОИЗВОДИТЕЛЬНОСТЬ АЛГОРИТМА

Эффективность алгоритма во многом зависит от

  • Временная сложность
  • Пространственная сложность

ВРЕМЕННАЯ СЛОЖНОСТЬ:

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

КОСМИЧЕСКАЯ СЛОЖНОСТЬ:

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

АСИМПТОТИЧЕСКИЕ ОБОЗНАЧЕНИЯ

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

Например, время выполнения одной операции вычисляется как f(n), а для вычисления другой операции используется (n²). Это означает, что время выполнения первой операции будет увеличиваться линейно с увеличением n, а время выполнения второй операции будет увеличиваться экспоненциально с увеличением n.

Время, необходимое для вычислений с помощью алгоритма, подпадает под три (3) категории:

  • O НОТАЦИЯ (Лучший случай) — минимальное время, необходимое для выполнения программы.
  • НОТАЦИЯ Ом (средний случай) —среднее время, необходимое для выполнения программы.
  • Θ НОТАЦИЯ (худший случай) —максимальное время, необходимое для выполнения программы.

Зачем нам нужно изучать DSA?

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

  1. Поиск данных
  2. Скорость процессора
  3. Множественные запросы

Чтобы преодолеть эту проблему, мы используем структуры данных в этой структуре данных и алгоритме (DSA). Мы увидим временную и пространственную сложность кода и наилучший возможный способ хранения данных. Есть несколько способов хранения данных:

  • Множество
  • Стеки и очереди
  • Связанный список
  • Деревья
  • Графики
  • Выбор и сортировка.

МАССИВ:

Массив — это тип структуры данных, в которой однородные элементы хранятся в смежных ячейках памяти. Основная концепция массива заключается в хранении нескольких данных в одном месте, где все данные хранятся вместе, чтобы сэкономить память и время на поиск данных. Объекты данных (или) одного типа хранятся в массиве в одном и том же порядке. Размер массива необходимо определить до того, как данные будут сохранены в массиве. Любые данные, хранящиеся в массиве, можно легко получить и изменить. Данным, хранящимся в массиве, присваивается индекс (или) субъекта для идентификации местоположения сохраненных данных.

ПРИМЕР:

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

СТЕК

Стек — это линейная структура данных, в которой элементы вставляются и удаляются только с одного конца, то есть с вершины стека. Стек работает по принципу LIFO (последним пришел — первым ушел). Элементы, стоящие последними в стеке, будут удалены первыми, поскольку элементы можно добавлять только сверху. Таким образом, элемент, добавленный последним, будет тем, который необходимо удалить первым.

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