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