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

Используя алгоритм бинарного поиска определите - C++

Восстановить пароль Регистрация
 
ТЕНЬ001
 Аватар для ТЕНЬ001
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 24
10.01.2013, 21:16     Используя алгоритм бинарного поиска определите #1
Используя алгоритм бинарного поиска определите , содержит ли ранее
упорядоченный массив заданное действительное число. Если содержит , то
выведите индекс искомого элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 21:16     Используя алгоритм бинарного поиска определите
Посмотрите здесь:

C++ (ищу) Алгоритм построения бинарного дерева поиска
Реализовать алгоритм бинарного поиска с рекурсией C++
C++ Дерево бинарного поиска
C++ Как запрограммировать в рекурсивной форме алгоритм бинарного поиска
C++ Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если
C++ Реализация бинарного дерева поиска
C++ Найти все вхождения строки P в текст T, используя наивный алгоритм поиска
Реализация бинарного поиска C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.01.2013, 21:37     Используя алгоритм бинарного поиска определите #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
int bin_search(float x){
   int first = 0; /* Номер первого элемента в массиве */
   int last = n;  /* Номер элемента в массиве, СЛЕДУЮЩЕГО ЗА последним */
                      /* Если просматриваемый участок непустой, first<last */
    int mid; 
 
    if (n == 0)
    {
         return -1;/* массив пуст */
    } 
    else if (a[0] > x)
    {
         return -1; /* не найдено; если вам надо вставить его со сдвигом - то в позицию 0    */
    } 
    else if (a[n - 1] < x)
    {
          return -1;/* не найдено; если вам надо вставить его со сдвигом - то в позицию 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 - искомый индекс */
        return last;
    } else
    {
        /* Искомый элемент не найден. Но если вам вдруг надо его вставить со сдвигом, то его место - last.    */
     return -1;
    }
 
}
Yandex
Объявления
10.01.2013, 21:37     Используя алгоритм бинарного поиска определите
Ответ Создать тему
Опции темы

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