Бинарный (двоичный) поиск находит не все значения - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д