Модели и структуры данных


Линейный поиск максимального элемента массива



бет3/4
Дата03.12.2023
өлшемі1,96 Mb.
#134201
түріЛекция
1   2   3   4

Линейный поиск максимального элемента массива

  • Позволяет найти наибольший элемент в массиве.
  • public static T MaxValue(this T[] a) where T : struct, IComparable
  • { CheckArray(a);
  • T max = a[0];
  • for (int i = 1; i < a.Length; ++i)
  • { if (a[i].CompareTo(max) > 0)
  • { max = a[i]; }
  • }
  • return max;
  • }

Использование методов для линейного поиска

  • class Program
  • { static void Main(string[] args) {
  • int[] arr = { 5, 6, 2, 4, 9, 0, 1, 3, 7, 8 };
  • var index = arr.LinearSearch(22);
  • if (index == -1) { Console.WriteLine("Элемент не найден");
  • }
  • Console.WriteLine($"Индекс элемента со значением 4 равен {arr.LinearSearch(4)}");
  • Console.WriteLine($"Минимальный элемент массива: индекс {arr.IndexOfMin()}; значение {arr.MinValue()};");
  • Console.WriteLine($"Максимальный элемент массива: индекс {arr.IndexOfMax()}; значение {arr.MaxValue()};");
  • Console.ReadLine();
  • }
  • }

Бинарный (двоичный) поиск

  • Бинарный поиск (binary search) – алгоритм поиска индекса элемента в упорядоченном массиве, на каждой итерации происходит деление массива на две части, по этой причине алгоритм называют методом деления пополам.
  • Метод бинарного поиска достаточно прост для понимания, в то же время он очень эффективен. Поскольку на каждой итерации количество элементов в рабочей области массива уменьшается вдвое.

Бинарный (двоичный) поиск

  • Алгоритм заключается в следующем:
    • Определяем значение элемента в середине рабо-чей области массива данных и сравниваем его с искомым;
    • Если они равны, возвращаем индекс середины;
    • Если значение элемента в середине массива больше искомого, то поиск продолжается в левой, от среднего элемента, части массива, иначе в правой;
    • Проверяем не сошлись ли границы рабочей области, если да - искомого значения нет, нет - переходим на первый шаг.


Достарыңызбен бөлісу:
1   2   3   4




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет