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

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

Войти
Регистрация
Восстановить пароль
 
Жека_96
0 / 0 / 0
Регистрация: 22.06.2014
Сообщений: 2
#1

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

22.06.2014, 14:51. Просмотров 454. Ответов 2
Метки нет (Все метки)

Через два дня экзамен и нужно прогу сдать. Помогите пожалуйста.
Вот функция. Она должна работать так: создаёт большой массив, затем берёт сначала первые 50 элементов, и вычисляет оценку эффективности(число сравнений) и записывает в массив эту оценку, чтобы далее построить график, затем берёт 100,150 и т.д. элементов. Ошибка "Project Project1.exe raised exception class EAcceessViolation with message 'Access violation at address 00403195 in module 'Project1.exe'. Read of address 00187020'. Process stopped. Use Step or Run to continue." на строке 22. Заранее спасибо, буду благодарен

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
void Sort::func()
{int sr=0, i, j, m, K, nn=1000, p[1000], L, R,N;
  lsd = new int[10];
  krk = new int[10];
  float w;
   randomize();
   p[0] = 1;
  for(int i=1; i<nn; i++)
    p[i]=p[i-1] + random(20) + 1;
  N=0;
  for(j=1;j<nn;j++)
  {N=N+50;
  krk[j-1]=N;
  for(m=0; m<N; m++) // Поиск всех ключей
  {  sr++;
     K=p[m]; // искомый ключ
     L=0; R=N-1;
   while( R >= L )
        { sr++;
          if(p[L]==p[R]) break;
          i = L + (((R - L)*(K - p[L])) / (p[R] - p[L]));
          if( K < p[i] ) R = i - 1;
      else if( K > p[i] ) L=i+1;
        else break;
        }
  }
K= sr/nn;
  lsd[j-1]=K;
    }
}
Добавлено через 2 часа 35 минут
Помогите пожалуйста, очень надо! Если всё заработает, то отблагодарю денежно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2014, 14:51     Интерполяционный поиск
Посмотрите здесь:

C++ Бинарный и интерполяционный поиск
C++ Интерполяционный полином Лагранжа
C++ Интерполяционный многочлен Лагранжа
C++ Интерполяционный многочлен Ньютона
C++ Построить интерполяционный многочлен и интерполяционный сплайн
Интерполяционный поиск C++
C++ Интерполяционный поиск
C++ Интерполяционный следящий поиск
Дихотомия и интерполяционный поиск по отсортированному массиву C++
C++ Интерполяционный многочлен Лагранжа
C++ Интерполяционный многочлен Лагранжа
Интерполяционный полином Лагранжа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,815
Завершенные тесты: 1
22.06.2014, 16:42     Интерполяционный поиск #2
Цитата Сообщение от Жека_96 Посмотреть сообщение
for(j=1;j<nn;j++)
{
N=N+50;
krk[j-1]=N;
krk у Вас длиной 10, а nn равно 1000.
Аналогично и lsd
Жека_96
0 / 0 / 0
Регистрация: 22.06.2014
Сообщений: 2
29.06.2014, 14:05  [ТС]     Интерполяционный поиск #3
Не помогло, препод сам не смог найти ошибку и простил:-)
Yandex
Объявления
29.06.2014, 14:05     Интерполяционный поиск
Ответ Создать тему
Опции темы

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