Создание эффективной реализации сортированного списка с использованием 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).
Гендерные различия агрессивности подростков с акцентуациями характера
Содержание Введение………………………………………………………………………….4 Глава 1.Изучение гендерных различий агрессивности детей подросткового возраста с акцентуациями характера……………………………………………..9 1.1. Проблема агрессивности подростков и ее решение в психологической науке. 9 1.2. Проявление агрессивности в личностных характеристиках и поведении детей подросткового возраста 20 1.3. Гендерные различия агрессивного поведения современных подростков 33 1.4. Характер и типы акцентуаций характера. 40 1.
User elementpio : 18 октября 2012
45 руб.
Задачник по гидравлике с примерами расчетов СГАСУ Задача 2.207 Вариант 2
Плавучий железобетонный тоннель с наружным диаметром D и толщиной стенок δ удерживается от всплытия тросами, расположенными попарно через каждые _ метров длины тоннеля (рис. 2.186). Определить натяжение тросов, если вес одного метра дополнительной нагрузки по длине равен q, плотность бетона ρб = 2450 кг/м³ и угол α. Как изменится натяжение тросов при уменьшении наружного диаметра тоннеля на 1 м?
User Z24 : 14 октября 2025
180 руб.
Задачник по гидравлике с примерами расчетов СГАСУ Задача 2.207 Вариант 2
Учет затрат и себестоимости услуг ветеринарной клиники
Оглавление Введение Глава 1. Методология и правовая база учета затрат и калькулирование себестоимости услуг 1.1 Основные принципы организации учета затрат и калькулирование себестоимости услуг 1.2 Учет расходов по элементам затрат и по статьям калькуляции Глава 2. Учёт затрат и формирование себестоимости услуг предприятия ООО «Добрые руки» 2.1 Описание предприятия 2.2 Организационная структура предприятия 2.3 Состав затрат, включаемых в себестоимость услуг предприятия 2.4 Ка
User Elfa254 : 4 сентября 2013
5 руб.
Расчёт трёхплунжерного насоса 4Р-700 тип гидравлического насоса – НР-125-Технологический комплекс оборудования для гидравлического разрыва пласта с модернизацией и исследованием трёхплунжерного насоса 4Р-700
Расчетная часть-Расчёт трёхплунжерного насоса 4Р-700 тип гидравлического насоса – НР-125-Технологический комплекс оборудования для гидравлического разрыва пласта с модернизацией и исследованием трёхплунжерного насоса 4Р-700-Курсовая работа-Дипломная работа-Оборудование для капитального ремонта, обработки пласта, бурения и цементирования нефтяных и газовых скважин (Магистерская работа 12А1)-Текст пояснительной записки выполнен на Украинском языке вы можете легко его перевести на русский язык чере
349 руб.
Расчёт трёхплунжерного насоса 4Р-700 тип гидравлического насоса – НР-125-Технологический комплекс оборудования для гидравлического разрыва пласта с модернизацией и исследованием трёхплунжерного насоса 4Р-700
up Наверх