Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Oleg Schmidt                         2:5020/400     15 Feb 2003  00:45:33
 To : Aleksey Vaneev
 Subject : Re: Максимум в "бегущем окне"
 -------------------------------------------------------------------------------- 
 
 Hello Aleksey,
 
 AV> Задачка такая вылезла. Имеется поток цифр. В каждый момент времени
 AV> пополняется одним элементом. Также в каждый момент времени рассматривается
 AV> окно, "накрывающее" N прошедших элементов. Дана задача определить в каждый
 AV> момент времени максимальную цифру в окне, а также ее индекс. Каким быстрым
 AV> способом можно решить эту задачу? Отсортированный динамически изменяющийся
 AV> двусвязный список, а также "поголовная" проверка элементов - самые медленные
 AV> решения.
 
 Hу вот идейка. Hе знаю уж будет работать иль нет.
 Имеем деку. Имеем увеличивающейся на каждом шаге индекс (назовем шаг).
 В деке будут сохранятся значения элементов (назову ключ) и
 шаг, когда элемент должен быть удален из деки (вследсвии выхода из
 окна)  назову "время".
 
 Элементы в деке будут всегда отсортированы по ключу, поэтому поиск
 двоичный.
 Для определенности пусть слева наибольший ключ справа наименьший.
 Тогда алгоритм таков:
 -если текущий шаг равен "времени" у левого элемента
 в деке, то удаляем левый элемент из деки.
 - двоичным поиском по "ключу" находим позицию для текущего элемента в деке
 и удаляем все элементы правее найденной позиции
 - вставляем текущий элемент справа в деку, "время"= текущий шаг + N
 - увеличиваем текущий шаг.
 
 Максимальный элемент самый левый в деке. Индекс вычисляется используя
 "время" элемента и текущий шаг.
 Элементов в деке в среднем будет меньше N. (есди это вовсе будет
 работать :-)
 
 Олег.
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Максимум в "бегущем окне"   Aleksey Vaneev   13 Feb 2003 23:54:05 
 Re: Максимум в " бегущем окне"   Oleg I. Khovayko   14 Feb 2003 19:00:09 
 Максимум в "бегущем окне"   Evgenij Masherov   14 Feb 2003 21:14:42 
 Re: Максимум в "бегущем окне"   Oleg Schmidt   15 Feb 2003 00:45:33 
 Re: Максимум в "бегущем окне"   Nick Kovaliov   17 Feb 2003 09:57:35 
Архивное /ru.algorithms/786740c3af12.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional