Тема: Динамическая сортировка объектов

Предлагается решение по динамической сортировке объектов в составе. Данное решение подходит ТОЛЬКО для уже отсортированных коллекций. Состоит из двух частей: выборки "сортировка состава" и функции SortObjects в команде "Библиотека". Преимуществом данного решения является отсутствие зависимости скорости работы от количества объектов в составе (работает быстро).
Для работы необходимо импортировать настройку, и подключить сортировку в нужном месте. Рекомендуемое расположение - событие Object_Modified общесистемного скрипта.
Примерно таким образом

USE "CMD_FUNCTION_LIBRARY"
Sub Object_Modified(Obj)
  For Each pObj In Obj.Uplinks
    SortObjects pObj, Obj
  Next
End Sub

П.С.: РАБОТАЕТ ТОЛЬКО ДЛЯ УЖЕ ОТСОРТИРОВАННЫХ КОЛЛЕКЦИЙ
П.П.С: комментарии приветствуются

Re: Динамическая сортировка объектов

Хотелось бы увидеть какую-нить статистику по времени.
Сравнение быстроты этого и пузырькового методов.

(изменено: Edhunter, 1 сентября 2009г. 10:35:19)

Re: Динамическая сортировка объектов

Статистика - это круто, но очень долго собирать, к тому же - бесполезно. Как можно сравнивать точечную вставку и полновесную сортировку ?
Время работы пузырьковой сортировки - f(n)*n^2, время работы точечной вставки - (0..2)*f(n)
Кстати, на основе этой же выборки, можно легко создать и простейшую полную сортировку, время которой будет f(n)*n, что уже в n раз быстрее пузырьковой сортировки.

Re: Динамическая сортировка объектов

Статистика - это круто, но очень долго собирать, к тому же - бесполезно.

Вообще, для меня это новость..... точнее 2-е новости: долго и бесполезно...

Как можно сравнивать точечную вставку и полновесную сортировку ?

А я и не прошу статистику по полновесной сортировке.

Я попросил следующее:
Берешь коллекцию из 1000 объектов. (создание такой коллекции скриптом = 15 минут (с подглядыванием в хелп...))
Сортируешь её полностью.

Далее, вставляешь объект и сортируешь его своим способом - вычисляешь время.
Далее, вставляешь объект и сортируешь его пузырьковым способом - вычисляешь время.

Далее приводишь скриншоты - это и будет статистикой.

А то, что ты написал  f(n)*n^2, (0..2)*f(n) - это только теория, к тому же действительно никому не нужная. Нужна практика.
Посмотри, как представляются результаты топике: https://tdmsforum.ru/post199.html#p199