Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 22:21   #21
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Кстати, до прохода по массиву мы не знаем "нужно длины", так что сначала придется помещать в список все последовательности (как смещение, так и длину) с длиной не меньше уже обнаруженной, а потом дополнительно просматривать список для нахождения последовательностей нужной длины.
Сначала допсписок начал пуст, а максимальная длина равна 0. Затем берем элемент из списка и идем по списку, пока не встретим отличный, считая длину подпоследовательности. Если длина больше максимальной, то очищаем допсписок и заносим начало подпоследовательности. Если равна, то только заносим. Таким образом, после 1 прохода по массиву имеем максимальную длину и список начал подпоследовательностей. Возможно, имеет смысл хранить не только начала подпоследовательностей, но и концы.
Цитата:
Сообщение от illuminato Посмотреть сообщение
BDA, спасибо большое. Вы мне очень помогли и сохранили моё время.
Пожалуйста. Не забудьте протестировать на всякие случаи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.06.2013, 22:21   #22
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

<double-post>
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.06.2013, 22:30   #23
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
...Если длина больше максимальной, то очищаем допсписок...
А какова сложность очистки списка?
Если больше, чем O(1), не приведет ли это к росту сложности алгоритма выше O(N)?
Цитата:
Возможно, имеет смысл хранить не только начала подпоследовательностей, но и концы.
Я предложил хранить длину. Мне кажется, это удобнее.
s-andriano вне форума Ответить с цитированием
Старый 01.06.2013, 22:41   #24
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
А какова сложность очистки списка?
Если больше, чем O(1), не приведет ли это к росту сложности алгоритма выше O(N)?
Скорее всего выше. Можно попробовать соптимизировать
Запихивать в стек вместо списка и без очистки, при этом считая k количество подпоследовательностей максимальной длины. Таким образом, первые k сохраненных подпоследовательностей (на вершине стека) будут искомыми, а остальные можно просто удалить затем из стека. То есть почти то, что Вы написали в 19 посте, но без дополнительного просмотра списка.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 01.06.2013 в 22:44.
BDA на форуме Ответить с цитированием
Старый 02.06.2013, 09:13   #25
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Красивое решение.
Я сначала подумал, что, раз уж мы решились на выделение памяти объема O(N), то стек можно организовать посредством массива, а не посредством выделения памяти для каждого элемента. Удалений из середины наш список не предполагает, а очистка массива при оптимальной реализации занимает O(1).
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы поиск элементов танкек Паскаль, Turbo Pascal, PascalABC.NET 2 28.02.2012 10:11
Поиск элементов окна -Flasher- Общие вопросы Delphi 11 27.10.2010 15:46
Поиск элементов junkie Паскаль, Turbo Pascal, PascalABC.NET 2 07.06.2009 17:21
поиск элементов массива omar22 PHP 5 30.04.2009 13:01
Поиск одинаковых элементов Expected } Общие вопросы C/C++ 0 08.01.2009 15:54