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