.NET 4.x Исправить код двоичного поиска - C#
Формулировка задачи:
нужно подправить код что бы он заработал. на данный момент выдает одну ошибку: Ошибкe4Элемент "a" не существует в текущем контексте. Пробовал через int сделать не получается!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Random rnd = new Random(); int[] mass = new int[100]; for (int i = 0; i < mass.Length; i++) { mass[i] = rnd.Next(); } int n; int x; /* Номер первого элемента в массиве */ int first = 0; /* Номер элемента в массиве, СЛЕДУЮЩЕГО ЗА последним */ int last = n; /* Если просматриваемый участок непустой, first < last */ /* ВНИМАНИЕ! В отличие от более простого (first + last) / 2, * этот код устойчив к переполнениям. * * Если first и last беззнаковые, возможен код: * (unsigned)(first+last) >> 1. */ int mid = first + (last - first) / 2; if (n == 0) { /* массив пуст */ } else if (a[0] > x) { /* не найдено; * если вам надо вставить его со сдвигом - то в позицию 0 */ } else if (a[n - 1] < x) { /* не найдено; * если вам надо вставить его со сдвигом - то в позицию n */ } while (first < last) { if (x <= a[mid]) last = mid; else first = mid + 1; mid = first + (last - first) / 2; } /* Если условный оператор if (n == 0) и т.д. в начале опущен - * значит, тут раскомментировать! */ if (/* last < n && */ a[last] == x) { /* Искомый элемент найден. last - искомый индекс */ } else { /* Искомый элемент не найден. Но если вам вдруг надо его * вставить со сдвигом, то его место - last. */ } } } }
Решение задачи: «.NET 4.x Исправить код двоичного поиска»
textual
Листинг программы
Console.WriteLine("Введите Х"); int x = Convert.ToInt32(Console.ReadLine());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д