Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оптимизированный цикл поиска записей в массиве Данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Оптимизированный цикл поиска записей в массиве Данных
VovaK Дата: Вторник, 07.11.2023, 07:12 | Сообщение № 1
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Разработчикам VBA проектов.
Очень часто пользователи сталкиваются с необходимостью обработки и анализа обширных выборок из массивов данных на десятки тысяч записей. При выполнении таких задач использование стандартных приемов не достаточно для обеспечения требуемого быстродействия.
Выкладываю на Ваше внимание оптимизированный цикл поиска записей в индексированных отсортированных массивах Данных с повторными записями.
Например: Необходимо выполнить выборку списка индексированных данных с числом элементов 400 -500 записей из индексированного массива данных с числом элементов 4000 -10000.

Задача выполнить поиск с минимальным количеством проходов.
Предлагаю Вашему вниманию следующий алгоритм:
1. Формируем отсортированные по индексу (числовому идентификатору) массивы выборки и базы данных.
2. Создаем функции поиска – существования записи и поиска позиций:
Функция существования записи в массиве arr:

Обратите внимание на запись ********, если Искомый Индекс меньше наименьшего значения в массиве, то цикл поиска отменяется и так понятно, что в массиве его нет.

Функция поиска позиции записи в массиве:

3. Цикл поиска значений списка ListArr в массиве Arr:


Данный алгоритм отрезает избыточные проходы цикла минимальных значений и избыточные проходы после завершения повторного поиска последнего значения.

Всем удачи...


Всем удачи. У нас все получится.
С уважением, Владимир.


Сообщение отредактировал VovaK - Вторник, 07.11.2023, 07:26
 
Ответить
СообщениеРазработчикам VBA проектов.
Очень часто пользователи сталкиваются с необходимостью обработки и анализа обширных выборок из массивов данных на десятки тысяч записей. При выполнении таких задач использование стандартных приемов не достаточно для обеспечения требуемого быстродействия.
Выкладываю на Ваше внимание оптимизированный цикл поиска записей в индексированных отсортированных массивах Данных с повторными записями.
Например: Необходимо выполнить выборку списка индексированных данных с числом элементов 400 -500 записей из индексированного массива данных с числом элементов 4000 -10000.

Задача выполнить поиск с минимальным количеством проходов.
Предлагаю Вашему вниманию следующий алгоритм:
1. Формируем отсортированные по индексу (числовому идентификатору) массивы выборки и базы данных.
2. Создаем функции поиска – существования записи и поиска позиций:
Функция существования записи в массиве arr:

Обратите внимание на запись ********, если Искомый Индекс меньше наименьшего значения в массиве, то цикл поиска отменяется и так понятно, что в массиве его нет.

Функция поиска позиции записи в массиве:

3. Цикл поиска значений списка ListArr в массиве Arr:


Данный алгоритм отрезает избыточные проходы цикла минимальных значений и избыточные проходы после завершения повторного поиска последнего значения.

Всем удачи...

Автор - VovaK
Дата добавления - 07.11.2023 в 07:12
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!