Re[4]: Работа с календарями или графиками работ
От: pashzhel Россия  
Дата: 06.02.10 08:47
Оценка:
Здравствуйте, intr13, Вы писали:

P>>3 секунды много или мало — зависит от количества работ. Если там 100500 млрд. работ то достаточно быстро ) если 10 работ то медленно )


I>Отрезков относительно немного порядка 1000. Сейчас основное время ест преобразование из правил в отрезки.


Ну 1000 отрезков и 3 секунды это медленно.

I>Дискретность отрезка равна секунде при задании правил, при преобразовании правил в отрезки дискретность получается в миллисекундах (стандартный тип данных — дата со временем). Возможно действительно стоит задуматься об использовании точки начала отсчета, смещения относительно нее и заданным типом дискретности.


ну тут смотри , т.к. насколько я знаю формат datetime в части реализации это float формат ( зависит от библиотеки ) , поэтому лучше переходить к формату integer, при этом брать большую дискретность, 5 минут мне кажется самая минимальная должна быть. Ну или минута — версия для президента Медведева ( говорят у них там все по минутам расписано ), но не по миллисекундам это точно )

Ну и алгоритмы пересечения отрезков посмотри со сложностью n * log (n)

http://wiki.bks-tv.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2
там
Пересечение отрезков (алгоритм Бентли — Оттманна) — поиск всех точек пересечения отрезков на плоскости O((n + k)logn), k — количество точек пересечения.

Алгоритм Чазелла — Эдельсбруннера — пересечение отрезков за O(k + nlogn).

http://rain.ifmo.ru/cat/view.php/vis/geometry/segment-intersection-2008/algorithm
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.