Бинарный (двоичный) поиск находит не все значения - C#

Узнай цену своей работы

Формулировка задачи:

Дан массив ( неотсортированный) необходимо используя двоичный поиск найти все элементы массива, которые равны заданному вот накидал
        private static void binarySearch(int[] array, int x)
        {
            Array.Sort(array);
            int l = 0, r = array.Length;
            while (r - l > 1)
            {
                int mid = (l + r)/2; // делим отрезок [l, r] -попала
                if (array[mid] < x)
                {  l = mid; }
                else
                {  r = mid; }
            }
            for (int i = l; i <= r; i++)
            {
                if (array[i] == x)
                {
                    Console.WriteLine("Искомый элемент {0} находится на позиции - {1}", x, i + 1);
                }
            }
            Console.ReadKey();
        }
не ищет не все значения(

Решение задачи: «Бинарный (двоичный) поиск находит не все значения»

textual
Листинг программы
                if (val < arr[mid]) right = mid;
                else if (val > arr[mid]) left = mid + 1;
                else return mid

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.364 из 5
Похожие ответы