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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.88
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 47
#1

Интерполяционный поиск - C++

14.06.2012, 19:41. Просмотров 5288. Ответов 2
Метки нет (Все метки)

Напишите плиз реализацию данного поискать. Сорри если что за повтор темы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 19:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интерполяционный поиск (C++):

Интерполяционный поиск - C++
Через два дня экзамен и нужно прогу сдать. Помогите пожалуйста. Вот функция. Она должна работать так: создаёт большой массив, затем берёт...

Интерполяционный поиск - C++
int p_dv(TSsot c) { int i=0, j=nst-1, m; while(i<j) { if (c==c) if (c==x) return i; else return...

Бинарный и интерполяционный поиск - C++
Бинарный и интерполяционный поиск реализовать надо в одной программе помогите,плиз

Интерполяционный следящий поиск - C++
Привет ребят. Такая просьба: может кто делал когда-либо реализацию интерп.следящего поиска в массиве чисел, у кого есть скиньте...

Дихотомия и интерполяционный поиск по отсортированному массиву - C++
Естьчо в типовых/стандартных библиотеках для C или в STL? Спасибо

Построить интерполяционный многочлен и интерполяционный сплайн - C++
Здравствуйте, уважаемые. Даны узлы и значения функции в них. Картинка во вложении. Нужно построить интерполяционный многочлен(Лагранжа...

2
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
14.06.2012, 19:47 #2
C++
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <iomanip>
//прототипы функций
int interpolatingSearch (int[], int, int);
void printArray (int[], int);
using namespace std;
int main()
{
//резервируем память для переменных
const int size = 18;
int array[size] = {2,5,8,12,23,35,36,41,52,54,55,57,63,67,81,83,87,91};
int key, result;
//запрашиваем и сохраняем ключ поиска
cout << "Enter a key of search: ";
cin >> key;
//печатаем массив
printArray (array, size);
//вызываем функцию интерполирующего поиска
//сохраняем, возвращенное ею значение, в переменную result
result = interpolatingSearch (array, size, key);
if (result != -1)
//значение найдено - выводим его индекс
cout << "Value is found in an element with an index " << result << endl;
else
//значение не найдено
cout << "Value is not found" << endl;
return 0;
}
//функция, выполняющая интерполирующий поиск
//в качесте аргументов принимает массив, размер массива и ключ поиска
int interpolatingSearch (int a[], int arraySize, int keyOfSearch)
{
//объявляем необходимые локальные переменные
//изначально устанавливаем нижний индекс на начало массива,
//а верний на конец массива
int low = 0;
int high = arraySize - 1;
int mid;
//цикл интерполирующего поиска
while (a[low] < keyOfSearch && a[high] >= keyOfSearch)
{
//интерполирующий поиск производит оценку новой области поиска
//по расстоянию между ключом поиска и текущим значение элемента
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;
}
//функция, печатающая массив
void printArray (int b[], int sizeOfArray)
{
cout << "Indexes: " << endl;
for (int i = 0; i < sizeOfArray; i++)
cout << setw(4) << i;
cout << endl;
for (int i = 0; i < sizeOfArray; i++)
cout << "----";
cout << endl;
for (int i = 0; i < sizeOfArray; i++)
cout << setw(4) << b[i];
cout << endl << endl;
}
1
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 47
14.06.2012, 19:55  [ТС] #3
спасибо боооольшшооое
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2012, 19:55
Привет! Вот еще темы с ответами:

Интерполяционный полином Лагранжа - C++
Привет всем! ;)Такой вопрос, имею лабораториум по програмированию и получил несколько заданий, это одно из них, хотел би услишать может...

Интерполяционный полином Лагранжа - C++
Помогите пожалуйста есть программа когда нужно по заданному х=4 найти у Теперь мне нужно сделать наоборот есть у=0.5 найти все значения х...

Интерполяционный многочлен Лагранжа - C++
Здравствуйте, уважаемые, обшарил форум, но решения проблемы не нашел. Потратил часа 2, но так и не смог до конца разобраться. Задание:...

Интерполяционный многочлен Лагранжа - C++
Уважаемый форум...помогите пожалуйста полином Лагранжа задан 10 точками...как его вывести в форме многочлена то-есть x^4-2x^2...(пример)и...


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

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

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