Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Only_Loko
10 / 10 / 0
Регистрация: 20.09.2013
Сообщений: 22
#1

Поиск - C++

02.11.2013, 14:44. Просмотров 199. Ответов 2
Метки нет (Все метки)

Здравствуйте! Возникла проблема при поиске слова(поиск интерполяционный). Проблема заключается в том что нельзя вычитать, умножать объекты string(и понятное дело). Вот код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{ 
....
 string* a = new string[k];
....  //считывание слов
 
int low = 0;
int high = arraySize - 1;
int mid;
//цикл интерполирующего поиска
while (a[low] < keyOfSearch && a[high] >= keyOfSearch) // keyOfSearch - само слово класса string. 
//a - это массив из  string(string *a=new string[arraySize] )
{
    mid = low + ((keyOfSearch - a[low]) * (high - low)) / (a[high] - a[low]);
   //если значение в ячейке с индексом mid меньше, то смещаем нижнюю границу
   if (a[mid] < keyOfSearch)
   low = mid + 1;
   //в случае, если значение больше, то смещаем верхнюю границу
   else if (a[mid] > keyOfSearch)
   high = mid - 1;
   //если равны, то возвращаем индекс
   else
   return mid;
}
 
   //если цикл while не вернул индекс искомого значения,
   //то проверяем не находится ли оно в ячейке массива с индексом low,
   //иначе возвращаем -1 (значение не найдено)
   if (a[low] == keyOfSearch)
   return low;
 
   else 
 
   return -1;
}
Пожалуйста, помогите обойти эту проблему
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 14:44     Поиск
Посмотрите здесь:

Поиск яндекс в опере сам переключается на поиск майл.ру - Удаление вирусов
при запуске поиска в яндексе на опере он сам переключается на майл.ставил по умолчанию яндекс,не помогает.что делать?помогите.список логов...

Поиск яндекс заменяется на поиск mail.ru - Удаление вирусов
здравствуйте. я не особо сильна в компьютерах. но хотелось бы решить проблему. хочу найти что -то в яндексе или гугле, например. а...

Поиск по тегам или расширенный поиск - Программирование iOS
Вечер добрый. Подскажите пожалуйста как реализовать поиск по тегам. Хотя бы алгоритм. Например: автомобиль у него есть характеристики...

Поиск подмассива в массиве. Поиск значения - Pascal
Помогите исправить программу. вот условие и текст Даны два целочисленных массива X(n) и Y(m) .(m&lt;=n). Определить, является ли массив Y...

Поиск гугл переходит в поиск Mail - Удаление вирусов
При поиске в гугле выдается список сайтов, периодически при открытии нужной мне ссылки меня перекидывает на поиск Mail с тем же запросом...

Поиск Google перенаправляется на поиск майл - Удаление вирусов
После выполнения запроса в адресной строке Google перенаправляет на go.mail.ru

Функция, выполняющая поиск max, если оба её входных аргумента целочисленные, и поиск min, если вещественные - Fortran
Нужна функция, которая выполняет поиск максимума, если оба её входных аргумента принадлежат типу INTEGER, и поиск минимума, если они...

Обычный поиск и поиск с параметром - Delphi БД
Как совместить 2 поиска в один(при нажатии 1 кнопки и искали по всем полям)... никак не хотят вместе сортировать, а по отдельности вполне...

Полнотекстовый поиск, поиск по цифрам - 1С
Всем привет. Подскажите пожалуйста что может быть ? Есть 2 справочника. У одного в Наименование используются как цифры, так и...

Поиск в лабиринте (эвристический поиск) - Prolog
Помогите плиз!!Срочно надо) лабиринт представляет собой систему комнат,соединенных между собой переходами.В лабиринте имеется вход и...

Поиск блока и поиск в блоке - PHP
Здравствуйте! Как всегда столкнулся с проблемой составления регулярного выражения. Задача: Есть списки: TYPE = OGG,...

Поиск, частичный поиск и фильтрация в бд - Delphi БД
Искал на форуме, но то что нужно мне не нашел. Бд подключал через DBGrid ADOQuery ADOConnection DataSource. На главной форме находится...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
02.11.2013, 16:32     Поиск #2
в чем смысл применения такого способа поиска для строк? используйте std::map и не мучайтесь.
хотя если хотите помучаться, то вот решение: интерполяция предполагает работу с числами, следовательно надо рассматривать строку как число, где символы представляют цифры в 128-ичной системе счисления (если используются только латинские буквы) или в 256-ичной (если исползуются любые символы ASCII таблицы) или 65536-ичной (если используется Unicode). тогда остается перегрузить операции вычитания и деления для строк, а также умножение на число, используя такую их интерпретацию. Думаю что такой подход очень сильно скажется на производительности, особенно деление. map будет работать гораздо быстрее, хотя в образовательных целях можно делать всё, что угодно. Дерзайте
Only_Loko
10 / 10 / 0
Регистрация: 20.09.2013
Сообщений: 22
02.11.2013, 18:05  [ТС]     Поиск #3
Понятно, что можно более легким способом искать, но такое задание по лабе)...чтож, буду мучиться с перегрузками.
Yandex
Объявления
02.11.2013, 18:05     Поиск
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru