Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BMsearch 2d, Быстрый 2d-поиск 
:(
    Опции темы
Crait
Дата 31.3.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 20.2.2003

Репутация: 1
Всего: 1



Привет, уважаемые.
Помогите, плиз, с реализацией, ну, или с алгоритмом
быстрого поиска в двумерном (несортированном) массиве,
работающего оптимальнее простого сравнения,
вот как, например, поиск Бойера-Мура для строк.
Пробовал придумать сам - уж очень наворочено получается.

Кто-то тут, помнится, говорил, что для этих целей подходит
двумерное преобразование Фурье. Можно подробнее ?
PM MAIL   Вверх
Abrek
Дата 1.4.2004, 15:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я так понимаю, что нужно найти наперед заданное число в двумерном массиве (те его индексы i и j).
Если так, то можно применить метод половинного деления.
Делишь массив по одной из размерностей пополам и ищеш там число(перебором). Если находишь - хорошо, а не находишь - делишь пополам другую половину массива по другой размерности. И т.д.
Работать будет в любом случае быстрее чем прямой перебор. Максимум в два раза, ну а минимум... зависит от размерности smile.gif
  Вверх
Crait
Дата 1.4.2004, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 20.2.2003

Репутация: 1
Всего: 1



Найти надо не число, а матрицу (меньшей размерности, чем массив,
где осуществляется поиск).

Второе. Массив НЕ СОРТИРОВАН.
Так что метод половинного деления не катит sad.gif
PM MAIL   Вверх
maxim1000
Дата 1.4.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



если никакой дополнительной информации об элементах нет, то никакие ухищрения не помогут.
двумерное преобразование Фурье при вычислении использует значение функции в каждой точке, а значит уже будет вычислительно сложнее простого сравнения


--------------------
qqq
PM WWW   Вверх
Crait
Дата 1.4.2004, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 20.2.2003

Репутация: 1
Всего: 1



Ну почему же, при вычислении коррелляционных функций
одномерных сигналов FFT позволяет очень заметно сэкономить
на количестве операций (O(N*log(N)) вместо O(N*N)).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1108 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.