Вопросы и ответы на собеседовании по структуре данных [для новичков и опытных]

Опубликовано: 2020-11-23

Цель составления вопросов для интервью по структуре данных и алгоритмам — познакомить вас с характером вопросов, которые обычно задают на собеседовании по теме «Структура данных и алгоритмы». Хорошие интервьюеры не задают заранее заданных вопросов. Как правило, вопросы начинаются с основных понятий предмета и продолжаются в зависимости от ваших ответов и дальнейшего обсуждения. Если вы хотите получить опыт и получить работу своей мечты по науке о данных, ознакомьтесь с нашими сертификатами по науке о данных.

Оглавление

Структуры данных Интервью Вопросы и ответы

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

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

2. Какие существуют различные структуры данных?

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

Читайте также: Сортировка в структуре данных

3. Что означает алгоритм?

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

4. Для чего нужен анализ алгоритма?

Та или иная проблема может быть решена множеством способов. Следовательно, можно вывести несколько алгоритмов решения. Цель анализа алгоритмов — найти и реализовать наиболее подходящий алгоритм.

5. Критерии анализа алгоритма

Алгоритмы анализируются на основе двух факторов – пространства и времени. Это подразумевает время выполнения и дополнительное пространство, требуемое со стороны алгоритма.

6. Что понимается под асимптотическим анализом алгоритма?

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

  • Представление наилучшего случая выполняется символом Ω(n)
  • Представление наихудшего случая осуществляется символом Ο (n)
  • Представление среднего случая выполняется символом Θ (n)

7. Что подразумевается под линейной структурой данных?

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

8. Какие общие операции выполняются со структурой данных?

Ниже приведены операции, которые можно выполнять над структурой данных:

Вставка – добавление элемента данных

Удаление — удаление элемента данных

Обход — доступ и печать элементов данных

Поиск — найти элемент данных

Сортировка — элементы данных расположены в предопределенной последовательности.

Обязательно к прочтению: идеи и темы проекта структуры данных

9. Какие существуют подходы к разработке алгоритмов?

Существует три широко используемых подхода к разработке алгоритмов:

Жадный подход: выбор следующего лучшего варианта для поиска решения.

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

Динамическое программирование: проблема делится на минимальные подзадачи, и они решаются вместе. С

9. Примеры жадного алгоритма:

  1. · Алгоритм минимального связующего дерева Джикстры, Крускала и Прима
  2. · График – Раскрашивание карты
  3. Проблема вершинного покрытия
  4. · Проблема планирования работы
  5. · Проблема рюкзака
  6. · Задача коммивояжера

10. Примеры алгоритмов «разделяй и властвуй»

  1. Матричное умножение Стассена
  2. Быстрая сортировка
  3. Сортировка слиянием
  4. Ближайшая пара
  5. Бинарный поиск

11. Примеры алгоритмов динамического программирования:

  1. Ханойская башня
  2. Кратчайший путь Дейкстры
  3. Планирование проекта
  4. Проблема с рюкзаком
  5. ряд чисел Фибоначчи
  6. Кратчайший путь для всех пар Флойда-Маршалла

12. Что такое связанный список?

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

13. Что такое стек?

Это своего рода абстрактный тип данных, используемый для хранения и извлечения значений в формате Last In First Out.

14. Почему мы используем стеки?

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

Общие операции, которые вы можете выполнять со стеком:

push(): добавление элемента в вершину стека

pop(): удаление элемента из вершины стека

peek(): показывает значение верхнего элемента, не удаляя его.

is empty(): проверьте, есть ли у вас пустой стек

is full(): Проверяет, есть ли у вас полный стек

15. Что понимается под очередью в структуре данных?

Как и стек, очередь также является абстрактной структурой данных. Однако очередь открыта на обоих концах. Это означает, что один конец используется для вставки данных (постановка в очередь), а другой конец используется для удаления элемента (удаление из очереди). Очередь следует методологии «первым поступил — первым обслужен», т. е. элемент данных, сохраненный первым, будет доступен первым.

16. Какая польза от очередей?

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

17. Операции, которые можно выполнять в очереди:

enqueue(): добавление элементов в конец очереди

dequeue(): удаляет элемент из начала очереди

peek(): показывает значение переднего элемента, не удаляя его.

is empty(): проверяет, пуст ли стек

is full(): проверяет, заполнен ли стек

18. Что такое бинарный поиск?

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

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

Последние мысли

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

Если вам интересно узнать о науке о данных, ознакомьтесь с программой IIIT-B & upGrad Executive PG по науке о данных, которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1 -на-1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Что понимается под абстрактной структурой данных?

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

Какие существуют типы структур данных?

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

Какие особенности структур данных останутся актуальными в будущем?

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