Бинарный поиск в массиве
Автор Владимир Суслов задал вопрос в разделе Другие языки и технологии
Бинарный поиск 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);
right = q - 1;