Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Поиск - C++

02.11.2013, 14:44. Просмотров 210. Ответов 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;
}
Пожалуйста, помогите обойти эту проблему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 14:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск (C++):

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле - C++
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим папкам пройтись и из каждой папки в этом файле достать...

Поиск циклов в графе. Поиск центра взвешенного графа - C++
В интернете, к сожалению, по этим вопросам не так уж много нашел. Можете посоветовать статью/пособие, где было бы подробно об этом написано?

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Поиск пикселя и поиск изображения на экране - C++
Переписываю код из clickermann для запуска его на C++. Мне нужны две функции которые выполняли бы сканирование экрана и поиск пикселя...

Поиск. Бинарный поиск - C++
Ребятушки, а это опять я :) Задали индивидуальное задание &quot; Бинарный поиск &quot; Препод сказал, сделать простейшую программку с методом...

2
ya_noob
_
202 / 146 / 9
Регистрация: 08.10.2011
Сообщений: 432
02.11.2013, 16:32 #2
в чем смысл применения такого способа поиска для строк? используйте std::map и не мучайтесь.
хотя если хотите помучаться, то вот решение: интерполяция предполагает работу с числами, следовательно надо рассматривать строку как число, где символы представляют цифры в 128-ичной системе счисления (если используются только латинские буквы) или в 256-ичной (если исползуются любые символы ASCII таблицы) или 65536-ичной (если используется Unicode). тогда остается перегрузить операции вычитания и деления для строк, а также умножение на число, используя такую их интерпретацию. Думаю что такой подход очень сильно скажется на производительности, особенно деление. map будет работать гораздо быстрее, хотя в образовательных целях можно делать всё, что угодно. Дерзайте
1
Only_Loko
10 / 10 / 0
Регистрация: 20.09.2013
Сообщений: 22
02.11.2013, 18:05  [ТС] #3
Понятно, что можно более легким способом искать, но такое задание по лабе)...чтож, буду мучиться с перегрузками.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 18:05
Привет! Вот еще темы с ответами:

Поиск. Последовательный поиск - C++
Через 2 дня сдавать лабу =-O , а я до сих пор ни могу с ней справиться :umnik: ... Препад, чесное слово &quot; дебил &quot; :-| , дал задания, а...

QRegExp поиск всех строк которые соответствуют шаблону и поиск их длины - C++ Qt
//поиск строк типа ] QRegExp reg(&quot;\\\\]&quot;); QString text = &quot;test ] bla ]&quot;; int pos = reg.indexIn(text); //здесь ошибка....

поиск по сайту. не могу разобраться как делать поиск по нескольким полям - PHP БД
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE `marka` LIKE '%&quot; . $search . &quot;%' or `model` LIKE '%&quot; . $search...

Поиск максимальных компонент в виде подрограмм, поиск значения функции - Pascal
Очень нужна помощь, срочно. Хотя бы просто помогите с алгоритмом, код написать мб сам справлюсь. Задачи 2 и 3. Предельно благодарен.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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