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

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

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

Дан массив ( неотсортированный) необходимо используя двоичный поиск найти все элементы массива, которые равны заданному вот накидал
Листинг программы
  1. private static void binarySearch(int[] array, int x)
  2. {
  3. Array.Sort(array);
  4. int l = 0, r = array.Length;
  5. while (r - l > 1)
  6. {
  7. int mid = (l + r)/2; // делим отрезок [l, r] -попала
  8. if (array[mid] < x)
  9. { l = mid; }
  10. else
  11. { r = mid; }
  12. }
  13. for (int i = l; i <= r; i++)
  14. {
  15. if (array[i] == x)
  16. {
  17. Console.WriteLine("Искомый элемент {0} находится на позиции - {1}", x, i + 1);
  18. }
  19. }
  20. Console.ReadKey();
  21. }
не ищет не все значения(

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

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

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


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

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

11   голосов , оценка 3.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы