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

Двоичный поиск - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.76
Shab13
1 / 1 / 0
Регистрация: 10.03.2011
Сообщений: 39
07.04.2011, 10:17     Двоичный поиск #1
Требуется найти в массиве элементы которые повторяются и элементы которые присутствуют единожды.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdafx.h>
#define N 10
 
int main(void)
{
    int a[N],v,low,high,i,k;;
    for(i=0;i<N;i++)
    {
        scanf("%d", &a[i]);
    }
    printf("Input value to search -> ");
    scanf("%d",&v);
    low=0; high=N-1;
    for(i=N/2; a[i]!=v; i=(low+high)/2)
        if(a[i]<v) low=i+low;
        else high=i-low;
    printf("Value %d on %d place\n", v, i+1);
    return 0;
}
Можно ли как-то дописать в этот код?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 10:17     Двоичный поиск
Посмотрите здесь:

C++ Нерекурсивный двоичный поиск
Двоичный поиск C++
Двоичный поиск C++
C++ Двоичный поиск в map
двоичный поиск C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
popov654
 Аватар для popov654
31 / 31 / 2
Регистрация: 09.04.2011
Сообщений: 114
13.04.2011, 22:58     Двоичный поиск #21
Да это как раз я и так понял, вопрос не в этом был)

Вот видите, Вы сами согласились, что такой компаратор пригоден только для целых. Но тогда зачем заморачиваться с приведением типа? Писали бы в сигнатуре (const int *a, const int *b)...
Не говоря уже о том, что в случае целых можно вообще без указателей, они больше 8 байт не занимают
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.04.2011, 23:12     Двоичный поиск #22
Цитата Сообщение от popov654 Посмотреть сообщение
Вот видите, Вы сами согласились, что такой компаратор пригоден только для целых. Но тогда зачем заморачиваться с приведением типа? Писали бы в сигнатуре (const int *a, const int *b)...
Не говоря уже о том, что в случае целых можно вообще без указателей, они больше 8 байт не занимают
Компаратор с другим прототипом не подойдет для функции qsort
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 00:51     Двоичный поиск
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
popov654
 Аватар для popov654
31 / 31 / 2
Регистрация: 09.04.2011
Сообщений: 114
14.04.2011, 00:51     Двоичный поиск #23
А-а-а...
Так она системная...
Сорри. Тогда ОК) Мы просто все эти сортировки руками писали, я даже не очень был в курсе, что она реализована там
Yandex
Объявления
14.04.2011, 00:51     Двоичный поиск
Ответ Создать тему
Опции темы

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