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

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

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

Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если - C++

10.01.2013, 11:32. Просмотров 898. Ответов 1
Метки нет (Все метки)

помогите решить задачу: Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если такого числа нет в массиве.
Всё до чего я смог додуматься вот. всем заранее спасибо за помощь и исправления(данный вариант не работает)

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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int x=0;
int a[]= {1,3,6,22,25,27,31,32,33,37,38,40};
int n=13;
size_t first = 0; /* Номер первого элемента в массиве */
size_t last = n; /* Номер элемента в массиве, СЛЕДУЮЩЕГО ЗА последним */
/* Если просматриваемый участок непустой, first<last */
size_t mid;
 
if (n == 0)
{
/* массив пуст */
}
else if (a[0] > x)
{
/* не найдено; если вам надо вставить его со сдвигом - то в позицию 0 */
}
else if (a[n - 1] < x)
{
/* не найдено; если вам надо вставить его со сдвигом - то в позицию n */
}
 
while (first < last)
{
/* ВНИМАНИЕ! В отличие от более простого (first+last)/2, этот код стоек к переполнениям.
Если first и last знаковые, возможен код (unsigned)(first+last) » 1. */
mid = first + (last - first) / 2;
 
if (x <= a[mid])
{
last = mid;
}
else
{
first = mid + 1;
}
}
 
/* Если условный оператор if(n==0) и т.д. в начале опущен - значит, тут раскомментировать! */
if (/* last<n &&*/ a[last] == x)
{
/* Искомый элемент найден. last - искомый индекс */
} else
{
 
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 11:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если (C++):

Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа - C++
помогите исправить программу на с++ Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального...

Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа до и после упорядочивания массива - C++
Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа до и после упорядочивания...

Составить алгоритм и программу длля поиска в массиве целых чисел из 5 элементов минимального числа. - C++
Составить алгоритм и программу длля поиска в массиве целых чисел из 5 элементов минимального числа.

Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a - C++
Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a.

дан массив. Если ввести 2 целых числа, то массив в диапазоне между этими числами приобретет максимальное значение массива - C++
дан массив. Если ввести 2 целых числа, то массив в диапазоне между этими числами приобретет максимальное значение массива. Как найти...

Дан массив В[0:n-1] целых чисел и числа x и y , где x<y. на основе элементов массива В сформировать массив D[0:m-1] - C++
Нужен полный текст программы, заранее благодарен

1
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 132
10.01.2013, 11:41 #2
Бинарный поиск в массиве
Бинарный поиск в массиве с++
в поиск вбейте, много таких тем)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 11:41
Привет! Вот еще темы с ответами:

Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0 - C++
Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0

Найти первое вхождение заданного целого числа в массив целых чисел - C++
11.Напишите программу, определяющую первое вхождение заданного целого числа х в массив целых чисел.

11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответ - C++
11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть...

Дан массив из n целых чисел. До и после каждого числа, кратного 7, вставить число, равное 5 - C++
через функцию Дан массив из n целых чисел. До и после каждого числа, кратного 7, вставить число, равное 5.


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

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

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