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

Бинарный поиск (найти искомый элемент в массиве и вывести его номер) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
lerchik
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 3
31.03.2012, 00:30     Бинарный поиск (найти искомый элемент в массиве и вывести его номер) #1
Помогите пожалуйста. Суть задачи: бинарным поиском найти искомый элемент в массиве и вывести его номер, если число в массиве встречается насколько раз, то вывести все номера этих элементов. С первой задачей я вроде спарвилась. Вот кусочек кода:


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
void obrmass(int D[n],int F[n]) // обработка массива
 {
 FILE *fp, *fw;//указатель на файловую структуру
 int i, X;// индексы эл-тов, искомый элемент
 
 printf("Vvedite iskomii element:\n");
 printf("[isk]=",i);// вводим искомый элемент
 scanf("%d",& X); //считываем введенный элемент
 
 for(i=0;i<n;i++)
 {
 L=1;
 R=n;
 while (L<R) //пока левый крайний элемент больше крайнего правого
 {
 m=(L+R)/2; // делим массив пополам
 if (D[m]<X) //если средний элемент меньше искомого
 L=m+1; //тогда берем половину справа
 else //иначе
 R=m; //крайним правым элементом считаем середину( берем левую половину массива)
 }
 }
 
 
 if (D[R]==X)
 {
 printf (" Nomer pervogo elementa X=%d raven %d",X,R);
 }
 else
 printf (" Element X=%d ne naiden",X);
 
 }


А вот с выводом номеров всех чисел, равных искомому проблема
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 00:30     Бинарный поиск (найти искомый элемент в массиве и вывести его номер)
Посмотрите здесь:

C++ В каждой строке матрицы найти и вывести минимальный элемент и его номер в строке
Найти минимальный элемент и его порядковый номер C++
C++ Определить максимальный элемент матрицы А, номер его строки и номер его столбца
C++ Найти максимальный элемент массива и его номер
Вывести на печать первый отрицательный элемент массива и его порядковый номер C++
C++ Найти номер его последнего локального максимума в массиве.
Найти минимальный элемент массива и его порядковый номер. C++
C++ Найти максимальный элемент массива и вывести на экран его значение и номер

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
31.03.2012, 09:02     Бинарный поиск (найти искомый элемент в массиве и вывести его номер) #2
C++
1
2
for (int i = R; D[i] == X; i++)
    printf("%d ", i);
lerchik
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 3
31.03.2012, 14:22  [ТС]     Бинарный поиск (найти искомый элемент в массиве и вывести его номер) #3
Спасибо большое)))
Yandex
Объявления
31.03.2012, 14:22     Бинарный поиск (найти искомый элемент в массиве и вывести его номер)
Ответ Создать тему
Опции темы

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