Проверьте реализацию бинарного поиска - C#

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

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

Проверьте , пожалуйста , реализацию бинарного поиска . Пока только учусь , может какие-то неточности есть ?
    class Arr
    {  
        
        // конструктор
        private int[] _mass;  //массив
        public Arr(int[]mas)
        {
            if (mas.Length == 0) Console.WriteLine("Вы не задали массив элементов!");
            else _mass = mas;
        }
 
        // вывод массива 
        public void ShowArr()
        {
            Console.WriteLine("Массив элементов:");
            foreach (int t in _mass)
            {
                Console.Write(t+" ");
            }
            Console.WriteLine();
        }
 
        // функция сортировки
        public void SortArr(int[] mas)
        {
            Array.Sort(mas);
        }

        // функция бинарного поиска
        public int BinPoisk(int[] mas,int N)
        {
            // вызываем функцию ортировки
            SortArr(mas);
            //допустип,что массив упорядочен по возврастанию
            int left = 0, right = N, mid; 
 
                // ввод ключа
                int key = mas[0];
                Console.WriteLine();
                Console.WriteLine("Введите элемент для поиска:");
                key = int.Parse(Console.ReadLine());
 
            while (left <= right)
            {
                //ищем середину
                mid = left + (right - left)/2;
               
                if (key < mid)
                {
                    right = mid - 1;
                }
                else if (key > mid)
                {
                    left = mid + 1;
                }
                else return mid;
            }
            return -1;
        }
    }
 
    class Proga
    {
        static void Main()
        {
            int[] m = new int[] {1,3,2,5,8,10,11,4,18,19,22,21};
 
            // создаём объект
            Arr  ob1=new Arr(m);
 
            // выводим элементы массива
            ob1.ShowArr();
            ob1.SortArr(m);
            ob1.ShowArr();
            int bin_poisk = ob1.BinPoisk(m,m.Length);
 
            if (bin_poisk == -1)
            {
                Console.WriteLine("Искомый элемент не найден");
            }
            else Console.WriteLine("Элемент найден под номером " + bin_poisk);
         }
    }
Заранее спасибо за ответ !

Решение задачи: «Проверьте реализацию бинарного поиска»

textual
Листинг программы
// функция сортировки
        public void SortArr()
        {
            Array.Sort(_mass);
        }

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


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

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

8   голосов , оценка 3.875 из 5
Похожие ответы