Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

алгоритм поиска элемента в массиве   Найти похожие ветки 

 
Piero   (2005-11-30 12:55) [0]

Подскажите алгоритм поиска элемента в массиве,
массив очень большой (>10000 элементов), я так помню, что алгоритм дерева, дает наилучшие результаты. Спасибо


 
Глупые Вопросы ©   (2005-11-30 14:08) [1]

Все алгоритмы поиска, насколько я понимаю, делаются в отсортированном массиве. В принципе можешь сделать и сортировку деревом, здесь тебе поможет, например, книга Вирта "Алгоритмы + структуры данных=программы".
Но это большой гемор. Проще в уже отсортированном массиве использовать дихотомический поиск (массив делится пополам, смотриться в какой из половин массива находится требуемое значение и так далее поеа не найдём).
Вообще, наверное есть уже готовые структуры, которые всё вышеописанное делают, как например STL в Visual C++


 
MBo ©   (2005-11-30 14:08) [2]

Для нахождения лучшего решения в конкретном случае - читать книжки по алгоритмам.

Общий случай - массив отсортировать, и использовать бинарный поиск.


 
Piero   (2005-11-30 14:26) [3]

Массив отсортирован, а вот насчет бинарного поиска это верно, если есть готовый напишите


 
Piero   (2005-11-30 14:30) [4]

просто его написать нужно аккуратно, если нет такого элемента, то найти, те элементы между кот и должно находиться искомое значение, если есть готовое, напишите


 
Anatoly Podgoretsky ©   (2005-11-30 14:32) [5]

Piero   (30.11.05 12:55)  я так помню, что алгоритм дерева, дает наилучшие результаты.

Неправильно понимаешь, дерево может быть вырожденым, тогда время поиска равно N
Двоичный поиск в дает время Log N


 
Piero   (2005-11-30 14:36) [6]

ладно, не надо, ничего писать я уже придумал



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1133129521
Diatel
2005-11-28 01:12
2005.12.18
Как сделать аналог дизассемблера IDA.


3-1131003784
gusev
2005-11-03 10:43
2005.12.18
Ошибка в запросе по дате и времени


3-1130784851
iXT
2005-10-31 21:54
2005.12.18
dll + MS SQL + ADO


6-1125558278
integery
2005-09-01 11:04
2005.12.18
што значит range check error


2-1133380789
zxc
2005-11-30 22:59
2005.12.18
как сделать чтобы delphi понимал 4.3 и 4,3 как число