Эксперт по сдаче вступительных испытаний в ВУЗах
В векторном списке элементы также располагаются в памяти в произвольном порядке. Но в самом элементе содержится только информационная область. Данные о порядке следования элементов содержатся в дополнительной области. Эта область представляет собою вектор (массив) ссылок на элементы. Порядок элементов определен порядком появления ссылок в векторе. Эта векторная область сама является динамическим объектом, т.к. наперед неизвестно количество элементов в списке и, соответственно, размер вектора не определен априори.
Элемент в векторном списке идентифицируется индексом вектора ссылок. Это является основой особенностей векторного списка. Для определенности в последующем рассмотрении будем считать, что начальное значение индекса равно единице.
В векторном списке реализуется прямой метод доступа к элементу в отличие от последовательного метода доступа в сцепленном списке. Эта особенность определяет множество новых свойств списка, организованного подобным образом.
Принципы программной реализации векторного списка.
Элементы в списке могут определяться, как и в сцепленном списке, за исключением отсутствия области связи.
type
PTEl = ^Person; Person = record
// Информационная область
Surname : string[30]; // Фамилия
Name : string[20]; // Имя
Patronymic : string[30]; // Отчество
Age : byte; // Возраст
Birthday :TDate; // Дата рождения
Salary :integer; // Зарплата
end;
Рассмотрим основные отличительные черты векторного списка при выполнении следующих основных операций над списком.
- создание нового списка;
- включение элемента в список;
- удаление элемента из списка;
- поиск элемента в списке;
- сортировка элементов списка;
Алгоритмы выполнения других операций являются либо суперпозицией выше приведенных, либо не представляют существенных затруднений.
Программная реализация этих алгоритмов не вызывает особых трудностей, т.к. в основном базируется на принципах работы с массивами. Поэтому приводить программную реализацию алгоритмов работы с векторными списками не представляется целесообразной.
Создание нового списка
Создание нового списка состоит в определении:
- Вектора ссылок, представляющего собой динамический массив указателей на элементы списка.
- Размера вектора, хранящегося в переменной содержащей размер динамического массива (максимально допустимое количество элементов для текущего размера вектора).
- Счетчика элементов списка, содержащего реально хранимое количество элементов в списке в данный момент.
Очевидно, что значение счетчика элементов списка не должно никогда превышать размер вектора. Если эти величины равны и в список включается новый элемент, то вектор ссылок увеличивается на некоторую величину, соответственно корректируется размер вектора и только после этого проводится операция включения.
При начальном определении списка счетчик элементов списка определяется равным нолю.
Дальнейшее формирование списка зависит от конкретных требуемых операций, рассмотренных ниже.
Включение элемента в список
При включения элемента в векторный список различаются два варианта: включение не в конец списка и включение в конец списка. Алгоритмы обработки каждого из этих вариантов различны. Это обусловлено тем фактом, что в первом случае необходима операция сдвига ряда ссылок в векторе ссылок. В случае добавления элемента в конец – операция сдвига ссылок в векторе ссылок не требуется.
Предположим, что в списке содержится N элементов. Более простой алгоритм включения элемента в конец списка формулируется следующим образом:
- Проверить условие того, что значение счетчика количества элементов меньше, чем размер вектора.
1.1. Если условие не выполнено, то увеличить вектор ссылок на некоторую величину и соответственно скорректировать размер вектора.
- Занести ссылку на новый элемент в N+1 элемент вектора ссылок.
- Увеличить на единицу значение счетчика элементов списка.
Предположим, что в списке содержится N элементов. Необходимо включить новый элемент в список после k-того элемента, где 0<k<N. Алгоритм включения элемента не в конец списка формулируется следующим образом:
- Проверить условие k<1. Если условие выполнено, то требование не корректно. Завершить алгоритм.
- Проверить условие k>N. Если условие выполнено, то требование не корректно. Завершить алгоритм.
- Проверить условие k=N. Если условие выполнено, то выполнить алгоритм включения в конец списка, приведенный выше. Завершить алгоритм.
- Проверить условие того, что значение счетчика количества элементов меньше, чем размер вектора.
4.1. Если условие не выполнено, то увеличить вектор ссылок на некоторую величину и соответственно скорректировать размер вектора.
- Переместить в векторе ссылок на одну позицию вниз все ссылки начиная с последней и кончая k+1.
- Занести ссылку на новый элемент в k+1 элемент вектора ссылок.
Удаление элемента
Задача удаления элемента из векторного списка формулируется следующим образом. Имеем векторный список, содержащий N элементов. Необходимо удалить элемент с индексом k, где 0<k<N. Алгоритм формулируется следующим образом:
- Проверить условие k<1. Если условие выполнено, то требование не корректно. Завершить алгоритм.
- Проверить условие k>N. Если условие выполнено, то требование не корректно. Завершить алгоритм.
- Проверить условие k=N. Если условие выполнено, то:
3.1. Освободить память, занимаемую k–тым элементом.
3.2. Удалить ссылку с индексом k из вектора ссылок.
3.3. Уменьшить значение счетчика количества элементов на единицу.
3.4. Завершить алгоритм.
- Освободить память, занимаемую k–тым элементом.
4.1. Удалить ссылку с индексом k из вектора ссылок.
4.2. Переместить в векторе ссылок ссылки с индексами от k до N+1 вверх на одну позицию.
4.3. Уменьшить значение счетчика количества элементов на единицу.
Поиск элемента в списке
Алгоритмы поиска элемента в неупорядоченном векторном списке практически не имеет особенностей по сравнению с аналогичным алгоритмом сцепленного списка.
Алгоритм поиска элемента в упорядоченном векторном списке имеет принципиальное отличие. Т.к. список упорядоченный и в векторном списке реализуется прямой доступ к элементам, то при поиске требуемого элемента возможно и целесообразно реализовать поиск методом половинного деления. При таком подходе значительно увеличивается скорость поиска, т.к. если список имеет N элементов, то максимальное количество шагов поиска равняется log2N. Сравните — в сцепленном списке среднее количество шагов поиска в лучшем случае N/4.
Сортировка элементов списка
Алгоритмы сортировки списка в векторной форме так же принципиально отличаются от рассмотренного выше алгоритма сортировки сцепленного списка. И это отличие также базируется на возможности прямого доступа к элементам списка.
Обратим внимание на тот факт, что при сортировке списка в векторной форме достаточно перемещать в памяти только ссылки, хранимые в векторе ссылок. Изменение положения самих элементов не требуется, а это, естественно, сказывается очень положительно на скорости выполнения сортировки.
Т.к. ссылки расположены в векторе фактически представляющим собой массив ссылок, то в данном случае допустимо и рационально использование любых алгоритмов сортировки массивов. А группа этих алгоритмов развита достаточно хорошо. Например, если не требуется высокого быстродействия, можно использовать простой в реализации алгоритм сортировки методом пузырька. А если количество элементов в списке значительно и требуется высокая скорость их сортировки, то необходимо использовать более сложные алгоритмы, например, алгоритм сортировки Шелла или QuickSort.
Ссылка на первоисточник:
https://www.sgu.ru
Оставить комментарий
Inna Petrova 18 минут назад
Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики
Иван, помощь с обучением 25 минут назад
Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Коля 2 часа назад
Здравствуйте, сколько будет стоить данная работа и как заказать?
Иван, помощь с обучением 2 часа назад
Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 часов назад
Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!
Иван, помощь с обучением 6 часов назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Василий 12 часов назад
Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.
Иван, помощь с обучением 12 часов назад
Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Анна Михайловна 1 день назад
Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?
Иван, помощь с обучением 1 день назад
Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Сергей 1 день назад
Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.
Иван, помощь с обучением 1 день назад
Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инна 1 день назад
Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?
Иван, помощь с обучением 1 день назад
Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Студент 2 дня назад
Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.
Иван, помощь с обучением 2 дня назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Ольга 2 дня назад
Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2
Иван, помощь с обучением 2 дня назад
Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вика 3 дня назад
сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.
Иван, помощь с обучением 3 дня назад
Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Игорь Валерьевич 3 дня назад
здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО
Иван, помощь с обучением 3 дня назад
Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вадим 4 дня назад
Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ
Иван, помощь с обучением 4 дня назад
Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Кирилл 4 дня назад
Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?
Иван, помощь с обучением 4 дня назад
Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Oleg 4 дня назад
Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?
Иван, помощь с обучением 4 дня назад
Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Валерия 5 дней назад
ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?
Иван, помощь с обучением 5 дней назад
Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 дней назад
Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.
Иван, помощь с обучением 5 дней назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Иван неделю назад
Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки
Иван, помощь с обучением неделю назад
Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Дарья неделю назад
Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.
Иван, помощь с обучением неделю назад
Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru