![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Быстрый алгоритм поиска [D7]
Vlad © (2012-12-26 18:55:00)
MyRecord = record;
StrID: String[256];
Field_1: Integer;
.....................
Field_n: Integer;
end;
A: array[0..10000000] of MyRecord;
Подскажите пожалуйста, каким алгоритмом поиска воспользоваться для такого большого списка, поиск должен быть осуществлен только по одному строковому полю StrID. Нужно вернуть номер в массиве, где находится искомая строка в записи.
Список НЕотсортирован.
Не поймите не правильно - я не решения прошу, а направления.
QAZ9 (2012-12-26 21:57:00) [1]Удалено модератором
Anatoly Podgoretsky (2012-12-26 20:19:00) [2]> Vlad (26.12.2012 19:08:04) [4]
Ну тогда время сортировки + время поиска N+N/2
MBo (2012-12-26 20:18:00) [3]Такого массива быть не может в d7 и вообще в Win32
Anatoly Podgoretsky (2012-12-26 20:16:00) [4]> Vlad (26.12.2012 18:55:00) [0]
По несортированному только последовательно, или любой разновидностью, пока
все не кончатся или не будет найден элемент. Берем худший случай когда нет,
тогда N, или статистический тогда N/2
Inovet (2012-12-26 19:13:00) [5]> [4] Vlad (26.12.12 19:08)
> ну разве что перед каждым новым актом поиска.
Так перед каждым поиском массив новый? Во время загрузки и искать.
Vlad (2012-12-26 19:08:00) [6]
> ) [1]
>
> Сортировать принципиально нельзя и хранить принципиально
> только в массиве? Тогда индекс приделать к нему.
да сортировать нельзя- список "не мой", ну разве что перед каждым новым актом поиска.
Vlad (2012-12-26 19:06:00) [7]
> Inovet © (26.12.12 19:00) [2]
Да вот читаю про это сейчас и думаю - а не проще ли жахнуть перебором.
Inovet (2012-12-26 19:00:00) [8]> [1] Inovet © (26.12.12 18:59)
Ну и хэш заодно.
Inovet (2012-12-26 18:59:00) [9]Сортировать принципиально нельзя и хранить принципиально только в массиве? Тогда индекс приделать к нему.