Структуры данных и алгоритмы являются важной частью любых собеседований по техническим вопросам и программированию. Крупные транснациональные корпорации, такие как Google, Microsoft и Apple, предпочитают DSA в качестве фактора найма. И DSA останется частью интервью MNC в будущем.
Так что нам следует освежить свои навыки работы с DSA и сосредоточиться на построении логики с использованием структур данных. DSA помогает улучшить навыки решения проблем. Каждый станет лучше писать чистый, точный и высокоэффективный код, ежедневно решая задачи DSA.
Привет всем 👋,
Добро пожаловать в очередную интересную статью! Вы рады узнать о реальных приложениях структур данных и алгоритмов? Да, я! Итак, без лишних слов приступим.
Массив:
- Двумерные массивы (матрицы) в основном используются в обработке изображений.
- Изображение RGB использует трехмерную матрицу.
- Двумерные массивы также используются в дизайне игр, таких как судоку, шахматы.
- Таблица лидеров игр или соревнований по программированию.
Стек:
- Используется в возврате, проверяет правильность скобок в выражении.
- Оценка инфиксных и постфиксных выражений.
- Используется в рекурсивных вызовах функций для хранения вызовов функций и их результатов.
- Отмена и повтор операций в текстовых процессорах, таких как MS-Word и Блокнот.
- История просмотра посещенных веб-сайтов.
- История звонков/журнал в мобильных телефонах.
- Виртуальная машина Java использует стек для хранения немедленных результатов вычислений.
Очередь:
- Операционная система Windows использует циклическую очередь для переключения между различными приложениями.
- Используется в алгоритме планирования заданий/процессоров First Come First Serve, который следует порядку FIFO.
- Все запросы ставятся в очередь для ответа сервера.
Приоритетная очередь:
- Очередь с приоритетом используется в алгоритме приоритетного планирования и обработки прерываний в ОС.
- Используется в кодировании Хаффмана в алгоритмах сжатия.
- Связанный список:
- Предыдущая и следующая страница в веб-браузере.
- Песни в музыкальном проигрывателе связаны с предыдущей и следующей песнями с помощью двусвязного списка.
- Следующее и предыдущееизображения в телефонной галерее.
- Несколько приложений, работающих на ПК, используют циклический связанный список.
- Используется для реализации стеков, очередей, деревьев и графиков.
График:
- В Facebook, LinkedIn и других сайтах социальных сетей пользователи считаются вершинами, а граница между ними указывает на то, что они подключены.
- Graph API Facebook и Google Knowledge API — лучшие примеры grpah.
- Карты Google, Yahoo Maps и Apple Maps используют график для отображения кратчайшего пути с помощью поиска в ширину (BFS).
- Используется в HTML DOM и React Virtual DOM.
Дерево:
- Структура представления в Проводнике файлов. (Папки и подпапки) использует N-арное дерево.
- Автопредложения, когда вы что-то гуглите с помощью Trie.
- Используется в алгоритмах машинного обучения, основанных на принятии решений.
- Используется в обратном отслеживании для поддержки дерева пространства состояний.
- Двоичное дерево используется при индексировании базы данных для эффективного хранения и извлечения данных.
- Для реализации структуры данных Heap.
- Двоичные деревья поиска (BST) можно использовать в алгоритмах сортировки.
- Алгоритм Дейкстры:
Этот алгоритм используется для поиска кратчайшего пути между двумя вершинами графа таким образом, чтобы сумма весов между ребрами была минимальной.
- Алгоритм Примса:
Это жадный алгоритм для получения минимального остовного дерева.
Не изучайте структуры данных и алгоритмы только теоретически. Поймите, что представляет собой каждая структура данных и что она дает в реальной жизни. Таким образом, вы сможете пройти следующее техническое собеседование, лучше разобравшись в DSA на практических примерах.
Это все для этой статьи. Я надеюсь, что это поможет вам получить некоторое представление о DSA.
Если вы нашли эту статью полезной, проявите свою любовь, несколько раз нажав кнопку хлопка. 🙌
Еще от Прачи Джамдаде
https://medium.com/gitconnected/make-your-android-studio-look-awesome-ec982d1e0dfe