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


Линейный поиск по значению



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

Линейный поиск по значению

  • Принимает в качестве аргументов массив и искомое значение, а возвращает индекс найденного элемен-та, или -1 в случае неудачи. Тип данных ограничен структурами для которых реализован интерфейс сравнения IEquatable.
  • public static int LinearSearch(this T[] a, T key) where T : struct, IEquatable {
  • CheckArray(a);
  • for (int i = 0; i < a.Length; ++i) {
  • // сравниваем текущее значение с искомым
  • if (a[i].Equals(key)) { return i; }
  • }
  • //если ничего не нашли
  • return -1; }

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

  • Позволяет найти индекс первого наименьшего зна-чения в массиве. Тип входящих аргументов ограничен структурами с реализованным интерфейсом Icomparable.
  • public static int IndexOfMin(this T[] a) where T : struct, IComparable {
  • CheckArray(a);
  • int indexMin = 0;
  • T min = a[0];
  • for (int i = 1; i < a.Length; ++i) {
  • if (a[i].CompareTo(min) < 0) //аналог записи a[i] < min, для обобщений {
  • min = a[i]; indexMin = i; }
  • }
  • return indexMin; }

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

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

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

  • Позволяет найти позицию первого наибольшего значения.
  • public static int IndexOfMax(this T[] a) where T : struct, IComparable
  • { CheckArray(a);
  • int indexMax = 0;
  • T max = a[0];
  • for (int i = 1; i < a.Length; ++i)
  • { if (a[i].CompareTo(max) > 0) //аналог записи a[i] > max, для обобщений
  • { max = a[i];
  • indexMax = i; }
  • }
  • return indexMax; }


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




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

    Басты бет