0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
|
||||||
1 | ||||||
Какой алгоритм поиска выбрать23.03.2017, 17:43. Показов 563. Ответов 5
Метки нет (Все метки)
Люди добрые вот в чём у меня вопросик, каким бы вы способом решили эту задачку. Например, есть массив из 20 миллионов пользовательских структур этого типа:
Каким лучше всего алгоритмом поиска воспользоваться, я кроме линейного поиска ничего не смог придумать, но работает медленно и есть возможность, что в недалёком будущем этот массив может стать в 10 раз больше и поиск может надолго подвиснуть. Заранее спасибо за помощь!
0
|
23.03.2017, 17:43 | |
Ответы с готовыми решениями:
5
Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) Какой алгоритм выбрать? Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар) Алгоритм поиска |
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
23.03.2017, 18:02 | 2 |
1) Строить индекс по составному ключу, для всех возможных комбинаций полей. Ну да, число индексов растет по факториалу, но для четырех полей цифры вполне приемлемые.
2) Строить индекс для каждого поля отдельно. Поиск по нескольким полям одновременно реализовать в форме "ищем по полю А, ищем по полю Б, потом отбираем записи найденные в первом и втором поиске разом". Первый вариант будет жрать память как конфеты, для второго можно подобрать входной массив на котором алгоритм все равно скатится до линейной сложности.
0
|
24.03.2017, 09:18 | 3 |
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
24.03.2017, 12:13 | 4 |
Сразу встаёт вопрос а что делает поле index в этой структуре? Если мы будет хранить структурные переменные в массиве, то итак будем знать index элемента.
И почему поле sex имеет тип int? Там много вариантов?
0
|
GbaLog-
|
24.03.2017, 12:15
#5
|
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
24.03.2017, 12:27 | 6 |
Не по теме: Кроме шуток, недавно видел код, где переменная типа BOOL (WinAPI-ный) принимала значения 0, 1 и 2! И позже в другом месте это учитывалось. У меня в голову лезет идея с составным ключом, состоящем из комбинаций значений age (3 цифры), date (ну пусть будет 4 цифры, хотя не знаю точно что там за даты собираются хранить), sex (хватит и 1). 8-значное число будет являться индексом (или ключом если хранить в хеше) к однозначному набору элементов с заданными хар-ками. Можно, конечно, это всё на биты попробовать перевести, но и так нормально.
0
|
24.03.2017, 12:27 | |
24.03.2017, 12:27 | |
Помогаю со студенческими работами здесь
6
Алгоритм поиска А* Алгоритм поиска в ширину Алгоритм поиска в глубину Алгоритм поиска библиотек Простые алгоритм поиска? Алгоритм поиска пути A* Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |