ВУЗ:
Составители:
Рубрика:
В данном алгоритме существенную роль играет факт упорядоченности
массива. Итерация алгоритма поиска заключается в следующем.
Выбираем элемент, расположенный в середине массива. Если он
совпадает с искомым, то поиск прекращается. Если же этот элемент больше
искомого, то в силу упорядоченности массива продолжать поиск следует в
левой его половине, иначе – в правой половине массива.
Алгоритм бинарного поиска является эффективным, поскольку после
каждой итерации количество рассматриваемых элементов уменьшается вдвое.
Для определения границ сегмента поиска элемента создаются две
переменные: l – левая граница сегмента поиска, r – правая граница сегмента
поиска. На каждой из итераций цикла поиска одна из переменных l или r
меняет свое значение. Поиск заканчивается тогда, когда левая и правая
границы совпадут, т.е. в сегменте останется только один элемент. Если он
равен искомому, выводим его индекс, иначе делаем вывод о том, что такого
элемента в массиве нет.
Блок-схема решения задачи 7 показана на Рис.4.13.
Код программы для задачи 7.
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int n;
int[] a;
Console.Write("Введите количество элементов массива:");
int.TryParse(Console.ReadLine(), out n);
if (n <= 0)
{
Console.WriteLine("Введите положительное размеры");
return;
}
a = new int[n];
if (a == null)
{
Console.WriteLine("Запрошено большое количество памяти.");
Console.WriteLine("Попробуйте ввести меньшее количество.");
return;
}
Console.WriteLine("Введите элементы массива:");
for (int i = 0; i < n; i++)
int.TryParse(Console.ReadLine(), out a[i]);
int k;
Console.WriteLine("Введите искомый элемент:");
int.TryParse(Console.ReadLine(), out k);
В данном алгоритме существенную роль играет факт упорядоченности
массива. Итерация алгоритма поиска заключается в следующем.
Выбираем элемент, расположенный в середине массива. Если он
совпадает с искомым, то поиск прекращается. Если же этот элемент больше
искомого, то в силу упорядоченности массива продолжать поиск следует в
левой его половине, иначе – в правой половине массива.
Алгоритм бинарного поиска является эффективным, поскольку после
каждой итерации количество рассматриваемых элементов уменьшается вдвое.
Для определения границ сегмента поиска элемента создаются две
переменные: l – левая граница сегмента поиска, r – правая граница сегмента
поиска. На каждой из итераций цикла поиска одна из переменных l или r
меняет свое значение. Поиск заканчивается тогда, когда левая и правая
границы совпадут, т.е. в сегменте останется только один элемент. Если он
равен искомому, выводим его индекс, иначе делаем вывод о том, что такого
элемента в массиве нет.
Блок-схема решения задачи 7 показана на Рис.4.13.
Код программы для задачи 7.
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int n;
int[] a;
Console.Write("Введите количество элементов массива:");
int.TryParse(Console.ReadLine(), out n);
if (n <= 0)
{
Console.WriteLine("Введите положительное размеры");
return;
}
a = new int[n];
if (a == null)
{
Console.WriteLine("Запрошено большое количество памяти.");
Console.WriteLine("Попробуйте ввести меньшее количество.");
return;
}
Console.WriteLine("Введите элементы массива:");
for (int i = 0; i < n; i++)
int.TryParse(Console.ReadLine(), out a[i]);
int k;
Console.WriteLine("Введите искомый элемент:");
int.TryParse(Console.ReadLine(), out k);
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
