есть две последовательности идентификаторов - изначально они идентичны.далее состояние первой последовательности меняется таким образом:либо в конец последовательности добавляется новый идентификатор либо удаляется произвольный уже существующий идентификатор.при этом все элементы сдвигаются.при этом вторая последовательность не изменяется
Как наиболее эффективно синхронизировать эти последовательности???
Эффективные алгоритмы синхронизации12.08.02 23:16 Автор: ih8u <i hate you> Статус: Member
нет немного не то - это похоже на синхронизацию локальной директории и удаленной ФТП-директории =))13.08.02 01:33 Автор: beetle <beetle> Статус: Member
> есть две последовательности идентификаторов - изначально > они идентичны.далее состояние первой последовательности > меняется таким образом:либо в конец последовательности > добавляется новый идентификатор либо удаляется произвольный > уже существующий идентификатор.при этом все элементы > сдвигаются.при этом вторая последовательность не изменяется > Как наиболее эффективно синхронизировать эти > последовательности???
Сколько раз меняется первая последовательность? Один или несколько?
Почему сразу нельзя внести нужные изменения во вторую последовательность? Можно ли записать изменения вносимые в первую последовательность в к-л лог, а потом по этой информации внести изменения во вторую последовательнось? Каковы вообще размеры этих синхронизированных последовательностей? Как храняться эти самые последовательности?
P. S.
Если я все правильно понял, то лучше всего будет просто скопировать одну последовательнось в другую ;-)
Эффективные алгоритмы синхронизации12.08.02 17:59 Автор: beetle <beetle> Статус: Member
последовательности эти не что иное как список запущенных процессов на машине
1.последовательность динамически изменяется - юзер что грузит,что-то выгружает
2 последовательность - должна отображать изменения в системе
короче Process manager
какие будут предложения- хочется найти еффективное решение.
я тут уже кой-чего наміслил ,но пока оно не совсем корректно работает=(((((
Эффективные алгоритмы синхронизации12.08.02 20:19 Автор: Cyril <sc> Статус: Member
> последовательности эти не что иное как список запущенных > процессов на машине > 1.последовательность динамически изменяется - юзер что > грузит,что-то выгружает > 2 последовательность - должна отображать изменения в > системе > короче Process manager > какие будут предложения- хочется найти еффективное решение. > я тут уже кой-чего наміслил ,но пока оно не совсем > корректно работает=(((((
Могу предложить сделать следующим образом:
пусть old - старый список процессов(n - элементов), а new - новый(m - элементов), только что полученный. Нумерация с единицы
1. i=n, начнем поиск с конца списка
2. Ищем в new[M..1] элемент old[i]
3. если его не находим(видимо процесс был выгружен), то уменьшаем i на единицу и переходим на 2
4. если нашли( j ), то переписываем все j+1, ... , M в old. Уменьшаем i.
5. Ищем остальные элементы из old в new[j..1]. Если при первом сравнении идентификаторы процессов не совпадают, то удаляем old[i] (так как видимо процесс с таким идентификатором был выгружен) уменьшаем i и снова сравниваем.
6. И так до тех пор пока не кончаться элементы в old
Все вышеперечисленное годится только для случая когда
на списком new выполняются только операции добавления в конец списка
и удаление произвольного элемента.