Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
1

Какой алгоритм поиска выбрать

23.03.2017, 17:43. Показов 563. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди добрые вот в чём у меня вопросик, каким бы вы способом решили эту задачку. Например, есть массив из 20 миллионов пользовательских структур этого типа:

C++
1
2
3
4
5
6
7
struct MyData
{
    int index;
    int age;
    int sex;
    int date;
};
Необходимо найти все элементы по некоторымм параметрам, параметры поиска могут быть от 1 до 4 и разных комбинаций полей.
Каким лучше всего алгоритмом поиска воспользоваться, я кроме линейного поиска ничего не смог придумать, но работает медленно и есть возможность, что в недалёком будущем этот массив может стать в 10 раз больше и поиск может надолго подвиснуть. Заранее спасибо за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2017, 17:43
Ответы с готовыми решениями:

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void lab...

Какой алгоритм выбрать?
Господа, у меня такой вопрос. Имеется задание на курсовую (про которую даже нельзя сказать, что её...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная...

Алгоритм поиска
есть ли в STL алгоритм принимающий упорядоченный интервал и проверяющий, содержит ли данный...

5
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
23.03.2017, 18:02 2
1) Строить индекс по составному ключу, для всех возможных комбинаций полей. Ну да, число индексов растет по факториалу, но для четырех полей цифры вполне приемлемые.
2) Строить индекс для каждого поля отдельно. Поиск по нескольким полям одновременно реализовать в форме "ищем по полю А, ищем по полю Б, потом отбираем записи найденные в первом и втором поиске разом".
Первый вариант будет жрать память как конфеты, для второго можно подобрать входной массив на котором алгоритм все равно скатится до линейной сложности.
0
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
24.03.2017, 09:18 3
https://habrahabr.ru/post/160009/
0
Форумчанин
Эксперт CЭксперт С++
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

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Там много вариантов?
Как минимум 3, столько в bool не влезет. :rofl:

0
Форумчанин
Эксперт CЭксперт С++
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2017, 12:27
Помогаю со студенческими работами здесь

Алгоритм поиска А*
Помогите написать код на с++,реализирующий алгоритм поиска А*, пожалуйста....

Алгоритм поиска в ширину
Вот тут нашел реализацию алгоритма поиска в ширину кратчайших расстояний в графе. По идее...

Алгоритм поиска в глубину
Мне нужен сам алгоритм, как программа на С ++, желательно с пояснениями к строкам. Может кто-то...

Алгоритм поиска библиотек
У меня нет опыта работы с C++ в рамках больших проектов, но только в относительно небольших учебных...

Простые алгоритм поиска?
Поделитесь, пожалуйста, вашими простые алгоритмами поиска char в char. Вот - есть мой собственный...

Алгоритм поиска пути A*
использую библиотеку SFML только для окна пытался сделать алгоритм поиска пути от одной до другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru