Галерея диаграмм связей структура данных
Структура данных, которая организует основное содержание и логическую структуру основных понятий структуры данных, помогает понимать и запоминать знания и подходит для повторения экзамена!
Отредактировано в 2024-03-27 14:56:11A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
структура данных
введение
Основные понятия структуры данных
данные
элемент данных, элемент данных
Подведите итоги на примерах
объекты данных, структуры данных
Типы данных, абстрактные типы данных
Три элемента
логическая структура
линейная структура
собирать
древовидная структура
Структура графа (структура сетки)
нелинейная структура
Физическая структура (структура хранения)
последовательное хранение
цепочка хранения
Индексное хранилище
Хэш-хранилище
непоследовательное хранение
Операции с данными
алгоритм
основная концепция
что такое алгоритм
Программа = структура данных + алгоритм
Структуры данных — это информация, которую необходимо обработать.
Алгоритмы — это этапы обработки информации.
Пять характеристик алгоритмов
Конечность
Может быть выполнено в течение ограниченного времени
Алгоритмы конечны
Программы могут быть бесконечными
уверенность
Один и тот же вход будет производить только тот же результат
осуществимость
Алгоритмы могут быть реализованы с использованием существующих базовых операций.
входить
Данные передаются в алгоритм на обработку
выход
Результат обработки алгоритма
Характеристики «хорошего» алгоритма
правильность
Умеет правильно решать задачи
читабельность
Опишите алгоритм так, чтобы другие могли его понять.
Надежность
Алгоритмы могут обрабатывать некоторые нештатные ситуации.
Высокая эффективность и низкие требования к хранению
То есть выполнение алгоритма экономит время и память.
Низкая временная сложность и низкая пространственная сложность
Мера эффективности алгоритма
временная сложность
Как рассчитать
① Найдите базовую операцию (самый глубокий цикл)
② Проанализировать взаимосвязь между количеством раз выполнения x базовой операции и размером задачи n x = f (n)
③Порядок величины O(x) от x — это временная сложность алгоритма T(n).
Часто используемые методы
Правило сложения: O( f( n)) × O( g( n)) = O( max( f( n), g( n)))
Правило умножения: O( f( n)) × O( g( n)) = O( ( f( n) × g( n)))
«Всегда обращайтесь к приказу власти»
Три уровня сложности
Временная сложность наихудшего случая: рассмотрим «худший» случай входных данных.
Средняя временная сложность: рассмотрим ситуацию, когда все входные данные кажутся одинаково вероятными.
Лучшая временная сложность: рассмотрите «лучший случай» для входных данных.
космическая сложность
накладные расходы на память
①Переменные хранения
②Рекурсивный вызов
Как рассчитать
Обычная программа
①Найдите переменные, связанные с занимаемым пространством и размером проблемы.
②Анализ взаимосвязи между занимаемым пространством x и размером проблемы n x = f(n)
③Порядок величины O(x) от x — это пространственная сложность алгоритма S(n).
рекурсивная программа
① Найдите связь между глубиной рекурсивного вызова x и размером задачи n x = f(n)
②Порядок величины O(x) от x — это пространственная сложность алгоритма.
Примечание. Некоторые алгоритмы требуют разного места для хранения для каждого уровня функций, а методы анализа немного отличаются.
Часто используемые методы
Правило сложения: одновременная временная сложность
Правило умножения: одновременная временная сложность
«Всегда обращайтесь к приказу власти»
Глава Один
линейный стол
Определение и основные операции с линейными таблицами
определение
Линейная таблица имеет конечную последовательность из n (n>=0) элементов данных одного типа, где n — длина таблицы, когда n=0. Линейный список — это пустой список.
заказ
Порядок битов начинается с 1, а индекс массива начинается с 0.
Длина таблицы, пустая таблица
Элементы верхнего и нижнего колонтитула
прямой предшественник и прямой преемник
За исключением первого элемента, каждый элемент имеет одного и только одного прямого предшественника; Каждый элемент, кроме последнего, имеет ровно одного прямого преемника.
Примечательные особенности
Элементы данных относятся к одному и тому же типу, ограничены и упорядочены.
Основные операции
Создавайте продажи, добавляйте, удаляйте, изменяйте и проверяйте
Судья пустой, судья длинный, вывод на печать (функция пользовательской функции)
Другие моменты, на которые стоит обратить внимание
Поймите, когда передавать ссылки на параметры «&».
Именование функций должно быть читаемым
Таблица последовательности (последовательное хранение)
Определение (структура хранения)
Элементы данных, которые логически смежны, также являются смежными физически.
Метод реализации
статически выделять память
Используйте реализацию «статического массива», чтобы определить максимальное количество хранилища.
После того, как размер определен, его нельзя изменить.
Динамически выделять память
Используя «динамический массив», указатель данных, определенный в структуре, динамически распределяет память через malloc (есть область кучи).
L.data=(ElemType *)malloc(sizeof(ElemType)*size)
Когда таблица последовательности заполнена, malloc можно использовать для динамического расширения максимальной емкости таблицы последовательности.
Необходимо скопировать элементы данных в новую область хранения и использовать бесплатную функцию для освобождения исходной области.
Используемые заголовки #include <stdlib.h>
Функции
произвольный доступ
Можно найти i-й элемент за время O(1)
Высокая плотность хранения
Расширять емкость неудобно
Вставка и удаление элементов данных неудобно
Функция работы
вставлять
Временная сложность: Лучшее O(1) Худшее O(n) Среднее O(n)
удалить
Временная сложность: Лучшее O(1) Худшее O(n) Среднее O(n)
Кодовые точки
В коде следует обратить внимание на разницу между порядком бит i и индексом.
Алгоритм должен быть надежным и обращать внимание на законность i
Использование кавычек
Находить
Побитовый поиск
В случае динамически выделяемой памяти временная сложность равна O(1).
Найти по значению
Временная сложность статического распределения: лучшее O(1) худшее O(n) среднее O(n)
Статика и динамика – это одно и то же.
связанный список
указатель
очередь
1. Можно использовать массивы и связанные списки.
Циклические связанные списки и циклические массивы
Указатели головы и хвоста, индексы
Глава вторая