Создание эффективной реализации сортированного списка с использованием generics

Цена:
10 руб.

Состав работы

material.view.file_icon
material.view.file_icon bestref-86997.rtf

Необходимые программы

Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

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

Так, для группирования данных нужны алгоритмы поиска и вставки. И мое сознание, отягощенное бухгалтерским учетом, не нашло ничего лучшего, чем использовать аналог TList (SortedList), представляющий собой динамический массив со свойствами «емкость» и «количество элементов».

Упорядоченность в этом массиве поддерживается с помощью компараторов, а при поиске используется алгоритм половинного деления с поиском нужной позиции i по ключу с условием (Items[i]>=Key) AND (Items[i-1]<Key). Если такого ключа нет, то все данные с позиции i переносятся на одну позицию в большую сторону. При этом используются процессорные команды MOVSW и MOVSB, которые выполняются очень быстро. При полном заполнении массива его размер увеличивается либо за счет свободных адресов, следующих за конечным адресом в массиве, либо с помощью выделения нового массива большей емкости с копированием данных из оригинала.

Но время шло, и объем группировок вышел за 10000 записей. Мой AMD K6 200 (мощный по тем временам компьютер) начал работать слишком меленно. И не удивительно – количество сдвигаемых элементов в среднем стало равно N2/4, то есть 108.

И вот как-то, после очередного обучения бухгалтеров бухгалтерии, пришла мысль. Зачем держать один большой массив, если можно его разбить на множество маленьких? Сказано – сделано. В течение двух минут я создал двухуровневый массив. Первый (верхний) уровень – это массив, элементами которого являются ссылки на массивы нижнего уровня. Второй из уровней (нижний) по сути, состоит из простых динамических массивов. Под простыми понимается то, что память под них выделяется заранее и впоследствии не перезанимается. Фактически этот массив представляет собой структуру, хранящую счетчик элементов и массив пар «ключ-значение». В дальнейшем я буду называть эти динамические массивы листовыми страницами (LeafPage).
КОНТРОЛЬНАЯ РАБОТА по дисциплине «Математическая логика и теория алгоритмов» Вариант 6
Вариант №6 Задача 1. Построить таблицу истинности логической формулы. Задача 2. Записать рассуждение в логической символике и проверить правильность рассуждения методом Куайна и методом редукции. Задача 3. В формуле указать свободные и связанные переменные. Привести формулу к предваренной форме. Для каждого преобразования указать, какие равносильности были использованы. Для итоговой формулы указать свободные и связанные переменные. Задача 4. На координатной плоскости даны множества A и B
User MehVV : 31 октября 2025
300 руб.
Действие физических сил на конструкцию
1. Определение реакций опор составной конструкции (система двух тел) Задание: Конструкция состоит из двух частей. Установить, при каком способе соединения частей конструкции модуль реакции наименьший, и для этого варианта соединения определить реакции опор, а также соединения С. Дано: = 9,0 кН; = 12,0 кН; = 26,0 кН м; = 4,0 кН/м. Схема конструкции представлена на рис.1.
User vermux1 : 9 ноября 2017
60 руб.
Действие физических сил на конструкцию
Контрольная работа №1 по предмету: Мировая экономика и международные экономические отношения
Контрольная работа 1 1. Распределить страны «Большой двадцатки» (G-20): на две группы – индустриально развитые страны и развивающиеся страны. 2. Заполнить таблицу, расположив страны «большой двадцатки» по убыванию по следующим показателям (вписывать в ячейки не числовые значения показателей, а названия стран): Площадь Численность населения ВВП (по номинальному валютному курсу) ВВП на душу населения (по номинальному валютному курсу Объем экспорта Объем импорта
User Andreas74 : 26 сентября 2021
100 руб.
Контрольная работа №1 по предмету: Мировая экономика и международные экономические отношения
Курсовой проект. Привод ленточного конвейера.
Курсовой проект. Привод ленточного конвейера. Введение 1. Выбор электродвигателя и кинематический расчет привода 2. Определение мощностей и передаваемых крутящих моментов 3. Расчет передач 3.1 Расчет цилиндрической прямозубой передачи тихоходной ступени 3.2 Расчет цилиндрической косозубой передачи быстроходной ступени 4. Предварительный расчет диаметров валов 5. Подбор и проверочный расчет муфт 6. Предварительный подбор подшипников 7. Разработка компоновочной схемы и выбор способа смазывания п
User DiKey : 20 февраля 2023
700 руб.
Курсовой проект. Привод ленточного конвейера.
up Наверх