Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10

Поиск. Бинарный поиск

27.01.2010, 17:22. Показов 2022. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребятушки, а это опять я
Задали индивидуальное задание " Бинарный поиск "
Препод сказал, сделать простейшую программку с методом бинарного поиска)

Я опять искала в инете, а там одна ересть, ни понятные фрагменты...
Может кто не будь, пример полной программы показать с коментарием строчек, что бы было понятно по русски, что где как обозначает

помогите пожалуйста а
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2010, 17:22
Ответы с готовыми решениями:

Поиск числа в двумерном массиве (бинарный поиск)
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Бинарный поиск
#include <iostream> #include <fstream> #include <algorithm> #include <string> #include <vector> using namespace std; ...

Бинарный поиск
Реализация на С++: int Search_Binary (int arr, int left, int right, int key) { int midd = 0; while (1) { midd = (left +...

12
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
27.01.2010, 18:40
http://codelab.ru/t/binsearch/cpp/#realizations
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
27.01.2010, 19:32
вот:
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
/* бинарный поиск */
    
int main(void){
    char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char to_find;
    int head, middle, tail;
    
    printf("Enter some character from A to Z: ");
    if ( scanf("%c", &to_find) != 1 )
        exit(1);
    if ( ( to_find = toupper(to_find) ) < 'A' || to_find > 'Z' ){
        printf("Wrong character!\n");
        exit(1);
    }
    
    head = 0; 
    tail = strlen(alphabet) - 1;
    
    /* если буква первая или последняя */
    if ( alphabet[head] == to_find ){
        printf("'%c' is %d-th character in alphabet.\n", to_find, head + 1);
        exit(0);
    }
    if ( alphabet[tail] == to_find ){
        printf("'%c' is %d-th character in alphabet.\n", to_find, tail + 1);
        exit(0);
    }
    
    while ( ( middle = head + ( tail - head ) / 2 ) > head ){
        if ( alphabet[middle] == to_find ){
            printf("'%c' is %d-th character in alphabet.\n", to_find, middle + 1);
            exit(0);
        }
        else if ( alphabet[middle] < to_find )
            head = middle;
        else
            tail = middle;
    }
    
    printf("'%c' not found in alphabet!\n", to_find);
    exit(0);
}
1
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10
16.02.2010, 23:16  [ТС]
А у меня проблема, программа та работает, Выскакивает типа введите букву для поиска, я в вожу к примеру " С" и после тут же закрывается, а где и как нада что то дописать, что бы она показала результат и после дополнительного нажатия на ENTER она закрылась??????????
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
16.02.2010, 23:21
https://www.cyberforum.ru/cpp-... 10807.html
0
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10
16.02.2010, 23:25  [ТС]
ни понятно ни чего ((((((((

кто не будь подскажите что дописать
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
16.02.2010, 23:33
Natusi4ek, самый простой способ - везде перед exit(0); вставить два раза подряд getchar(); - будет ждать, пока enter не нажмёте.
0
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10
16.02.2010, 23:36  [ТС]
Вставила 2 раза getchar();
getchar(); перед exit(0);

все ровно ни останавливается...... чиво делать Чебурашка)?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
16.02.2010, 23:46
Natusi4ek, проверьте,
вот так
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
52
53
54
55
56
57
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
/* бинарный поиск */
        
int main(void){
        char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        char to_find;
        int head, middle, tail;
        
        printf("Enter some character from A to Z: ");
        if ( scanf("%c", &to_find) != 1 )
                exit(1);
        if ( ( to_find = toupper(to_find) ) < 'A' || to_find > 'Z' ){
                printf("Wrong character!\n");
                getchar();
                getchar();
                exit(1);
        }
        
        head = 0; 
        tail = strlen(alphabet) - 1;
        
        /* если буква первая или последняя */
        if ( alphabet[head] == to_find ){
                printf("'%c' is %d-th character in alphabet.\n", to_find, head + 1);
                getchar();
                getchar();
                exit(0);
        }
        if ( alphabet[tail] == to_find ){
                printf("'%c' is %d-th character in alphabet.\n", to_find, tail + 1);
                getchar();
                getchar();
                exit(0);
        }
        
        while ( ( middle = head + ( tail - head ) / 2 ) > head ){
                if ( alphabet[middle] == to_find ){
                        printf("'%c' is %d-th character in alphabet.\n", to_find, middle + 1);
                        getchar();
                    getchar();
                        exit(0);
                }
                else if ( alphabet[middle] < to_find )
                        head = middle;
                else
                        tail = middle;
        }
        
        printf("'%c' not found in alphabet!\n", to_find);
        getchar();
        getchar();
        exit(0);
}
должно ждать, а не сразу закрываться.
А вообще консольные приложения лучше всего в консоли компилировать и в ней же запускать
1
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10
16.02.2010, 23:48  [ТС]
Ураааааааааааа...
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
16.02.2010, 23:50
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
52
53
54
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
int main()
{
    char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char to_find;
 
    int head, middle, tail;
 
 
    printf("Enter some character from A to Z: ");
    if ( scanf("%c", &to_find) != 1 )
        goto end;
    if ( ( to_find = toupper(to_find) ) < 'A' || to_find > 'Z' ){
        printf("Wrong character!\n");
        goto end;
    }
 
    head = 0; 
    tail = strlen(alphabet) - 1;
 
    /* если буква первая или последняя */
    if ( alphabet[head] == to_find ){
        printf("'%c' is %d-th character in alphabet.\n", to_find, head + 1);
        goto end;
    }
    if ( alphabet[tail] == to_find ){
        printf("'%c' is %d-th character in alphabet.\n", to_find, tail + 1);
        goto end;
    }
 
    while ( ( middle = head + ( tail - head ) / 2 ) > head ){
        if ( alphabet[middle] == to_find ){
            printf("'%c' is %d-th character in alphabet.\n", to_find, middle + 1);
            goto end;
        }
        else if ( alphabet[middle] < to_find )
            head = middle;
        else
            tail = middle;
    }
 
    printf("'%c' not found in alphabet!\n", to_find);
 
end:
    getchar();
    getchar();
    exit(0);
 
}
1
 Аватар для Natusi4ek
1 / 1 / 0
Регистрация: 22.01.2010
Сообщений: 10
16.02.2010, 23:53  [ТС]
Ооу))

Это тоже работает))))) блин вы клевые ребята !! я вас люблю !!!
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
17.02.2010, 18:30
Я опять искала в инете
А на форуме лень поискать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2010, 18:30
Помогаю со студенческими работами здесь

Бинарный поиск
Писал алгоритм бинарного поиска по массиву строк. В результате, почему-то, периодически функция не находит строку, которая есть. int...

Бинарный поиск
Написал программу бинарного поиска элемента v. Не могу понять в чем ошибка, не считает количество элементов массива удовлетворяющий...

Бинарный поиск
Никак не могу понять почему у меня не проходит тесты данный код. Задача выглядит так: Входные данные В первой строке входных...

Бинарный поиск
Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить, есть ли в массиве число,...

Бинарный поиск c++
1) последовательного поиска максимального элемента в одномерном динамическом массиве; 2) бинарного поиска количества нулевых элементов...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru