Dilma,
1) Поразмыслил над возможностью осуществить рекурсию методом "кольцевания". Ниже пример рекурсивной сортировки, зацикленный для изучения расхода памяти.
Получилось. Но, как и в случае рекурсивной задачи по чистке реестра (помните, наверное), простым это кажется только с первого взгляда. А дальше начинаешь понимать, что Memory должен обладать св-м стека, а в этой задаче эту роль выполняет MultiElementEx, отрабатывая на всю катушку свои возможности МАССИВА.
Но то, что ТЕОРЕТИЧЕСКИ, мы можем решать рекурсивные задачи, с момента появления MultiElementEx, это ФАКТ. Для этого достаточно ГАРАНТИРОВАТЬ реентерабельность HUB-а и метода ##add элемента MultiElementEx.
2) С быстродействием: впечатляет, в сравнении с "пузырьковыми" алгоритмами. А вот с памятью - беда. Сдаюсь - больше найти не могу (потому пример и выкладываю).
Естественно, я добавил в деструкторы MultiElementEx и EditMultiEx чистку PstrList-ов, и сделал деструктор для класса TArray. Дальше фантазия кончилась...............
P.S. В MultiElementEx деструктор и метод Clear я починил добавлением .MainClass, естественно....
Ответов: 9906
Рейтинг: 351
|
|||
карма: 9 |
|