двоичный поиск



Бинарный поиск в массиве

Автор Владимир Суслов задал вопрос в разделе Другие языки и технологии

Бинарный поиск C# и получил лучший ответ

Ответ от ...[гуру]
Двоичный поиск работает на _сортированном массиве_. У Вас генерируется просто набор.
Что в линейном поиске, что в двоичном - Вы когда находите значение - не выходите при этом из цикла. зачем цикл крутить дальше, если нашли элемент.
if (array[index] == x)
return index;
Плохо, что массив назвали Array, т. к. Array - уже существует как пространство имен для методов работы с массивами.
P.S: В C# уже есть BinarySearch
И линейный
Как раз в том самом пространстве Array
...
Просветленный
(44357)
Для двоичного поиска да.
Ну тогда при текущем состоянии в фунции двоичного поиска при нахождении числа программа уйдет в бесконечный цикл.
Поставьте :
if (A[q] == x)
{
result = q;
Console.WriteLine ("Found");
Pr++;
}
Посмотрите что произойдет.
Ну и ещё не очень нравится, что Pr сделана "глобальной".
Вы могли бы возвращать кол-во повторов так:
public static int Test(out int rep) {
rep = 10;
return 1;
}
....
int rep;
int l = Search.Test (out rep);
Console.WriteLine ("{0} : {1}", l, rep);

Ответ от Maks[гуру]
right = q - 1;

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Бинарный поиск C#
Двоичный поиск на Википедии
Посмотрите статью на википедии про Двоичный поиск
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*