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

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

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

Есть 2 части, чтобы понять структуры данных.

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

2. Как их использовать.

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

Кроме того, у нас также есть хранилище, где мы храним файлы (аудио, видео, код). Это хранилище является постоянным, в то время как ОЗУ (память) не является постоянным (теряет свое содержимое, когда компьютер выключается, кроме NVRAM), так почему бы нам просто не хранить все в постоянном хранилище? Причина этого в том, что постоянное хранилище работает медленно, ЦП, который выполняет обработку, подключается как к памяти (ОЗУ), так и к постоянному хранилищу, но он получает доступ к содержимому памяти намного быстрее.

Вот почему приложения находятся в постоянном хранилище, чтобы мы могли найти их, даже когда компьютер выключается. Например, приложение Chrome находится на жестком диске. Это приложение может иметь тысячу строк кода, для запуска приложения ЦП извлекает сценарии приложения непосредственно из постоянного хранилища, а для ускорения работы приложения некоторые сценарии могут храниться в ОЗУ.

ОЗУ — это область хранения, состоящая из полок, каждая из которых имеет 8-битное пространство для хранения и связанный с ней адрес. ЦП подключается к контроллеру памяти в оперативной памяти, который выполняет фактическое чтение и запись в оперативную память, потому что иногда полка может быть пустой. Контроллер памяти подключен ко всем полкам в оперативной памяти, поэтому ЦП запрашивает содержимое адреса полки через контроллер памяти, который произвольно обращается ко всем полкам. Хотя процессору быстрее работать с близкими друг к другу адресами памяти, чем с удаленными. Это может быть веской причиной для выбора определенной структуры данных над другой, например, массивы имеют свое содержимое близко друг к другу в памяти, в отличие от хеш-таблиц, которые обеспечивают более быстрое время доступа.

Доступ к содержимому адреса 0 быстрее, чем к содержимому 100-го адреса.

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

Таким образом, структура данных является для нас способом хранения информации, например, если вы объявите int a= 6; поскольку целые числа могут занимать до 32 бит памяти, переменная будет занимать 32 бита памяти. баран(4 полки). В настоящее время 64-битные системы позволяют хранить данные, занимающие до 64 бит (8 полок), которые передаются на ЦП как один блок.

Следовательно, ОЗУ может хранить данные до определенного предела в зависимости от типа системы, поэтому емкость памяти 32-битных систем для обработки ЦП намного ниже, чем у 64-битных систем.

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

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

1. Массивы

2. Деревья

3. Стеки

4. Очереди

5. Связанные списки

6. Попытки

7. Графики

8. Хэш-таблицы.

Языки программирования имеют свои собственные примитивные типы данных, и каждый язык имеет структуры данных для организации этих типов данных. Например, в JavaScript есть массивы и объекты (хеш-таблицы), а все остальное можно создать с нуля, поэтому языки могут иметь другие уже встроенные структуры данных.