.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());

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


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

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

7   голосов , оценка 4.143 из 5