Рубрики
Без рубрики

Узнайте лучшие структуры данных и алгоритмы каждый студенческий компьютер должен знать

Какие структуры данных в Python? Структуры данных – это способ организации и хранения да … Помечено с Python, программированием, вычислительной иллюстрацией, алгоритмами.

Какие структуры данных в Python?

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

Хотя примитивные типы данных включают в себя целые числа, плавать, строки и логические, не примитивные типы данных – это массив, список, кортежи, словарь, наборы и файлы. Некоторые из этих не примитивных типов данных, такие как список, кортежи, словари и наборы, встроены в Python. Есть еще одна категория структур данных в Python, которая является определенной пользователем; То есть пользователи определяют их. К ним относятся стек, очередь, связанный список, дерево, граф и hashmap. Примитивные структуры данных

Это основные структуры данных в Python, содержащем чистые и простые значения данных и служат строительными блоками для манипулирования данными. Давайте поговорим о четырех примитивных типах переменных в Python:

  • Целыми числами – этот тип данных используется для представления численных данных, то есть положительных или отрицательных целых чисел без десятичной точки. Скажи, -1, 3 или 6.
  • Float – Float означает «реальное число с плавающей точкой». Он используется для представления рациональных чисел, обычно содержащих десятичную точку, как 2,0 или 5,77. Поскольку Python – это динамически напечатанный язык программирования, Тип данных о том, что на объектных магазинах является смешной, и нет необходимости указывать тип вашей переменной явно.
  • Строка – этот тип данных обозначает коллекцию алфавитов, слов или буквенно-цифровых символов. Он создан, включая серию символов в рамках двойной или одиночной цитаты. Для объединения двух или более строк операция «+» может быть применена к ним. Повторяющиеся, сплайсинг, капитализация и извлечение являются одними из других строковых операций в Python. Пример: «синий», «красный» и т. Д.
  • Boolean – этот тип данных полезен в сравнении и условных выражениях и может занять значения true или false.

Встроенные не примитивные структуры данных

В отличие от примитивных структур данных, не примитивные типы данных не только хранят значения, а набор значений в разных форматах. Давайте посмотрим на не примитивные структуры данных в Python:

  • Списки – это самая универсальная структура данных в Python и записывается в виде списка элементов, разделенных запятыми, заключенными в квадратные скобки. Список может состоять из гетерогенных, так и однородных элементов. Некоторые из методов, применимых в списке, являются индекс (), добавления (), расширяют (), вставить (), удалить (), POP () и т. Д. Списки смешаны; То есть их содержание может быть изменено, сохраняя идентичность Intact.
  • Кортеры – кортежи похожи на списки, но неизменны. Также, в отличие от списков, кортежи объявляются в скобках вместо квадратных скобок. Особенностью неизменности обозначает, что, как только элемент определен в кортеже, он не может быть удален, переназначен или отредактирован. Он гарантирует, что заявленные значения структуры данных не манипулируются или переопределены.
  • Словари – словари состоят из пар ключей. «Key» идентифицирует элемент, а «значение» хранит значение элемента. Клона отделяет ключ от его значения. Предметы разделены запятыми, со всей вещей, заключенной в фигурных скобках. Хотя ключевые ключи неизменны (цифры, строки или кортежи), значения могут быть любого типа.
  • Наборы – множества являются неупорядоченной коллекцией уникальных элементов. Как и списки, наборы смещаются и записываются в квадратных скобках, но никакие два значения не могут быть одинаковыми. Некоторые множественные методы включают в себя счет (), индекс (), любой (), все () и т. Д.
  • Списки против массивов – нет встроенной концепции массивов в Python. Массивы могут быть импортированы с помощью Numpy Package перед их инициализацией. Чтобы узнать больше о Numpy, можно оформить заказ наш урок Python Numpy. Списки и массивы в основном аналогичны, кроме одного разницы – в то время как массивы являются коллекциями только однородных элементов, списки включают как однородные, так и гетерогенные предметы.

Пользовательские структуры данных в Python

Следующим в нашем обсуждении структур данных и алгоритмов в Python является краткий обзор различных пользовательских структур данных:

  • Стеки – стеки являются линейными структурами данных в Python. Хранение элементов в стогах основана на принципах первого в/последних (FILO) или Last-in/First-Out (Lifo). В стогах добавление нового элемента на одном конце сопровождается удалением элемента с того же конца. Операции «Push» и «POP» используются для вставки и удаления соответственно. Другие функции, связанные с стеком, пустые (), размер () и верхний (). Стеки могут быть реализованы с использованием модулей и структур данных из библиотеки Python – List, Collections.deque и queue. Lifooqueue.
  • Очередь – похожи на стеки, очереди представляют собой линейные структуры данных. Тем не менее, предметы хранятся на основе первого в/первой (FIFO) принцип. В очереди элемент, который наименее недавно добавлен, удален первым. Операции, связанные с очередью, включают в себя enqueue (добавление элементов), декауэю (удаление элементов), спереди и сзади. Как и стеки, очереди могут быть реализованы с использованием модулей и структур данных из библиотеки Python – List, Collections.deque и очереди.
  • Дерево – деревья – это нелинейные структуры данных в Python и состоят из узлов, соединенных краями. Свойства дерева – один узел, обозначен корневым узлом, кроме корня, каждый другой узел имеет связанный исходный узел, и каждый узел может иметь произвольное количество детских узлов. Двоичная структура данных деревьев – это то, чьи элементы имеют не более двух детей.
  • Связанный список – серия элементов данных, соединенных вместе по ссылкам, называется связанным списком в Python. Это также линейная структура данных. Каждый элемент данных в связанном списке подключен к другому, используя указатель. Поскольку библиотека Python не содержит связанных списков, они реализуются с использованием концепции узлов. Связанные списки имеют преимущество перед массивами у динамического размера, с легкостью вставки/удаления элементов.
  • График – график в Python наглядно представляет набор объектов, причем некоторые пары объектов, соединенные ссылками. Вершины представляют собой объекты, которые взаимосвязаны, и ссылки, которые объединяются вершины, называются краями. Тип данных словаря Python может использоваться для представления графов. По сути, «ключи» словаря представляют вершины, а «значения» указывают на соединения или кромки между вершинами.
  • Таблицы Hashmaps/Hash – в этом типе структуры данных, функция хеша генерирует адрес или индексное значение элемента данных. Значение индекса служит ключом к значению данных, позволяющим быстрее доступу данных. Как и в типе данных словаря, хэш-таблицы имеют пары клавиш-значений, но функция хеширования генерирует ключ.

Структуры данных и алгоритмы для интервью на работу

Коллекция кода Python, решая некоторые из общих структур данных и алгоритмов, которые вы, возможно, должны столкнуться с процессом собеседования

Что такое алгоритмы в Python?

Алгоритмы Python – это набор инструкций, которые выполняются для получения решения заданной проблемы. Поскольку алгоритмы не относятся к языку, они могут быть реализованы на нескольких языках программирования. Никаких стандартных правил направляет написание алгоритмов. Они зависят от ресурсов и проблем, но разделяют некоторые общие конструкции кода, такие как контроль потока (если-else) и петли (в то время как, для). В следующих разделах мы кратко обсудим дерево обход, сортировку, поиск и алгоритмы графика. Алгоритмы обхода дерева

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

– Обход в заказах включает в себя посещение поддерева налево сразу, а затем корня, а затем правый поддерева.

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

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

Сортировка алгоритмов Обозначим способы устранения данных в определенном формате. Сортировка гарантирует, что поиск данных оптимизирован на высоком уровне и что данные представлены в читаемом формате. Давайте посмотрим на пять различных типов алгоритмов сортировки в Python:

Bubble Sort — This algorithm is based on comparison in which there is repeated swapping of adjacent elements if they are in an incorrect order.

Сортировка слияния – на основе алгоритма разрыва и завоевания, сорт слияния разделяет массив на две половины, сортирует их, а затем объединяет их.

Сортировка вставки – эта сортировка начинается со сравнения и сортировки первых двух элементов. Затем третий элемент сравнивается с двумя ранее отсортированными элементами и так далее.

Shell Sort — It is a form of Insertion sort, but here, far away elements are sorted. A large sub-list of a given list is sorted, and the size of the list is progressively reduced until all the elements are sorted.

Selection Sort — This algorithm begins by finding the minimum value from a list of elements and puts it into a sorted list. The process is then repeated for each of the remaining elements in the list which is unsorted. The new element entering the sorted list is compared with its existing elements and placed at the correct position. The process goes on until all the elements are sorted.

Алгоритмы поиска

Алгоритмы поиска помогают проверять и извлекать элемент из разных структур данных. Один тип алгоритма поиска применяет метод последовательного поиска, в котором список последовательно проходит, и каждый элемент проверяется (линейный поиск). В другом типе интервал поиска элементов ищеты в сортировке структур данных (двоичный поиск). Давайте посмотрим на некоторые примеры:

Linear Search — In this algorithm, each item is sequentially searched one by one.

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

Графические алгоритмы

Существует два метода пересечения графов, использующих их края. Эти:

Depth-first Traversal (DFS) — In this algorithm, a graph is traversed in a depthward motion. When any iteration faces a dead end, a stack is used to go to the next vertex and start a search. DFS is implemented in Python using the set data types.
Breadth-first Traversal (BFS) — In this algorithm, a graph is traversed in a breadthward motion. When any iteration faces a dead end, a queue is used to go to the next vertex and start a search. BFS is implemented in Python using the queue data structure.

Анализ алгоритма

A Priori Analysis — This represents a theoretical analysis of the algorithm before its implementation. An algorithm's efficiency is measured by presuming that factors, such as processor speed, are constant and have no consequence on the algorithm.

A Posterior Analysis — This refers to the empirical analysis of the algorithm after its implementation. A programming language is used to implement the selected algorithm, followed by its execution on a computer. This analysis collects statistics, such as the time and space required for the algorithm to run.

Источник: https://www.upgrad.com/blog/data-structures-algorithm-in-python/

Оригинал: “https://dev.to/courseprobe/learn-the-top-data-structures-and-algorithms-every-computer-science-student-should-know-23go”