Re: О сортировке. Алгоритм QSort



Posted by Анатолий Таланин on December 16, 1998 at 09:21:15:

In Reply to: Re: О сортировке. Алгоритм QSort posted by Владимир Секретёв, Клуб Любителей Бухгалтерского Учета on December 15, 1998 at 12:46:33:

: Сортировать массивы с помощью ленты фактов это, конечно, просто ужасно. Безумно расходуется память, необходимо регистрировать какие-то псевдооперации, порождающие факты для сортировки.

Хочется получить объяснение различий в расходовании памяти при работе с одним и тем же объёмом данных при помощи фактов или экстрапараметров. Если "нагрузка" ложится на накладные расходы, то какие в пропорциях к данным?

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

Не уверен, что "встряска" обязательна. по крайней мере мы пользуемся решением, достаточно простым, правда всё-таки с использованием инструментария фактов и возможности сортировать факты по выбранному полю. Основная часть алгоритма одного из возможных решений приведён в моем ответе.
Уверен, что Ваше решение заслуживает самого серьёзного внимания, по крайней мере за предложенное красивое решение без вмешательства фактов, на основе только экстрапараметров. Владимир, уточните, что за функция tt в тексте алгоритма?
x = [get %, PA+[intsn [tt (l+r)/2]]]

Предлагаю текст программы округления, которую мы применяем в расчётах. Конечно она очень похожа на приведённую на сайте с реализацией алгоритма QuickSort.
* -----------------------------------------------------
:Precision Округление чисел
* -----------------------------------------------------
* ВХОДНЫЕ ПАРАМЕТРЫ: RO - Значение для округления
* PC - Точность округления
*
* ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ:
*
* ВЫХОДНЫЕ ПАРАМЕТРЫ: RO - Результат округления
* -----------------------------------------------------
! RO < 0
PC = -PC
!
RO = [tr RO/PC+0.5] * PC
return
Очевидно применение точности округления в естественном, а не обратном представлении более оправдано.



Пpишедшие ответы: