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

Нерекурсивный двоичный поиск - C++

Восстановить пароль Регистрация
 
trtua
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 4
23.11.2010, 19:59     Нерекурсивный двоичный поиск #1
необходимо написать на С++ двоичный поиск в рекурсивном варианте.

вот пример рекурсивной ф-ции двоичного поиска:
C++
1
2
3
4
5
6
int BinSerch(int x[],int L, int R, int key){
if (R<L) return -1;
int M=(L+R)/r;
if (x[M] = = key) return M;
else if (x[M] < key) return BinSearch(X, L, M-1, key);
       else return BinSearch(X, M+1, R, key);
без рекурсии значит функция не должна вызывать сама себя. как понял. добавятся циклы.
напишите пожалуйста с кратким объяснением.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2010, 19:59     Нерекурсивный двоичный поиск
Посмотрите здесь:

Двоичный поиск C++
Двоичный поиск C++
Двоичный поиск C++
Двоичный(бинарный) поиск C++
двоичный поиск C++
Приближенный двоичный поиск C++
двоичный поиск C++
Двоичный поиск C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
trtua
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 4
24.11.2010, 23:57  [ТС]     Нерекурсивный двоичный поиск #2
идей нет?
voice8787
 Аватар для voice8787
19 / 19 / 3
Регистрация: 21.08.2010
Сообщений: 136
25.11.2010, 00:59     Нерекурсивный двоичный поиск #3
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
#include<stdio.h>
#include<conio.h>
#define N 50
main()
{
int n,mid,a[N],first,last,i,x;
clrscr();
printf("n=");
scanf("%d",&n);
first = 0;
  last = n-1;
  for(i=0;i<n;i++)
   scanf("%d",&a[i]);
  printf("x=");
  scanf("%d",&x);
     while ( first < last ) 
   {
     mid = ( first + last ) / 2;
       if ( x <= a[mid] ) 
          last = mid;
     else 
          first = mid + 1;
   }
  if ( a[last] == x )
    printf("%d",a[last]);
  getch();
  }
Yandex
Объявления
25.11.2010, 00:59     Нерекурсивный двоичный поиск
Ответ Создать тему
Опции темы

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