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

Написать функцию рекурсивного бинарного поиска - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread24304.html
вот есть класс class Mnojestvo{ //Класс Множество public: Mnojestvo(int n,char*ptr); ~Mnojestvo(){delete FMas;}; Mnojestvo Union(Mnojestvo &P) const; //Метод "Объединение" Mnojestvo Cross(Mnojestvo &P) const;// Метод "Пересечение" void Insert_Elem(char elem) ; //Метод "Добавление элемента void View_Set(); //Получение значения множества Mnojestvo operator + (Mnojestvo...
C++ в конце каждой строки дописать ее длину :help:у меня есть программа.условие звучит так:"в конце каждой строки дописать ее длину.добавляемая строка имеет вид"строка имеет n символов".здесь n-количество символов в строке.нужно работать на файле,т.е. открыть какой то файл,переработать его как указано в задании и сохранить изменения в новый файл".я попыталась ее написать но она у меня ошибки выдает ,:wall:много.помогите исправить правильно... http://www.cyberforum.ru/cpp-beginners/thread24281.html
Unreachable code Cath statement missing ) Type name expected C++
Всем Салют!У меня проблема в проге.Хочу создать исключение: #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
вычислить C++
1)вычислить а1*а2*...*an все это под корнем вычислить((а1под корнем-а1)все в кв.+...+an под корнем + an)в кв.) 2) Выяснить имеются ли в послед. s1,...,sn такие члены послед. si, si+1, что si - это значит si+1 тире. :wall:
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз http://www.cyberforum.ru/cpp-beginners/thread24240.html
длина входной строки не превосходит 300 символов, она вводится с консоли. Вам необходимо вывести на консоль либо преобразованную строку, либо требуемые в условии данные. Использовать класс string нельзя! Строка состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). Если таких слов...
C++ Указатели =( Ввести с клавиатуры (или из файла) контактные данные нескольких(2..100) человек: В одну строку: Фамилию (слово), группу (одна цифра от 1 до 3), теле- фон (10 цифр), e-mail (слово@слово.слово). Вывести следующие данные в виде таблицы: Фамилия, тел Фамилия, e-mail Результат выводится на экран. В работе нужно применять указатель void *. :umnik: подробнее

Показать сообщение отдельно
Kalashnikov
14 / 14 / 1
Регистрация: 08.02.2009
Сообщений: 63
26.02.2009, 23:19     Написать функцию рекурсивного бинарного поиска
ну вот, сделал вот так рекурсивно двоичный поиск, если ненаходит элемента, то возвращает -1, если находит, то возвращает индекс элемента

C++
1
2
3
4
5
6
int binsearch(int arr[], int s, int r, int l=0){ // (arr масив в котором ищем, s то что ищем, r размер масива)
    int m=(l+r)/2;
    if (arr[m] == s) return m;
    if (m == l || m == r) return -1;
    if (arr[m] < s) binsearch(arr, s, r, m); else binsearch(arr, s, m); 
    }
Добавлено через 11 минут 29 секунд
это, провтык немного, передавать масив может быть немного накладно для памяти, выгодней передавать указатель, ну разбирайся =)

C++
1
2
3
4
5
6
int binsearch(int* arr, int s, int r, int l=0){
    int m=(l+r)/2;
    if (*(arr+m) == s) return m;
    if (m == l || m == r) return -1;
    if (*(arr+m) < s) binsearch(arr, s, r, m); else binsearch(arr, s, m);   
    }
 
Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru