Сортировка и поиск массивов в C#

Класс Array предоставляет несколько полезных методов работы с массивами. Два из них позволяют сортировать и искать массивы.

В следующем коде показано, как программа использует метод Сортировка класса Array для сортировки массива случайных данных.

// Значения данных.
private const int NumValues = 100;
private int[] Values;

// Сделайте некоторые случайные значения.
private void Form1_Load(object sender, EventArgs e)
{
    // Создаем случайные значения.
    Random rand = new Random();
    Values = new int[NumValues];
    for (int i = 0; i < NumValues; i++)
    {
        Values[i] = rand.Next(0, 100);
    }

    // Сортируем значения.
    Array.Sort(Values);

    // Отображение значений.
    lstValues.DataSource = Values;
}

Этот код создает объект Random и массив Values. Затем он перебирает массив, назначая случайные значения для каждой записи.

Далее код вызывает метод Сортировка класса Array для сортировки значений. Он заканчивается отображением значений в ListBox.

В следующем коде показано, как программа использует метод BraySearch класса Array для поиска значения в массиве.

// Найдите значение.
private void btnSearch_Click(object sender, EventArgs e)
{
    // Получить целевое значение.
    int target = int.Parse(txtValue.Text);

    // Попытаемся найти его.
    int index = Array.BinarySearch(Values, target);

    // Выберите значение.
    if (index >= 0)
    {
        // Мы нашли цель. Выберите его.
        lstValues.SelectedIndex = index;
    }
    else
    {
        // Мы не нашли цель. Выберите ближайшее значение.
        index = -index;
        if (index >= NumValues) index = NumValues - 1;
        lstValues.SelectedIndex = index;
    }
}

Код анализирует введенный текст и вызывает метод BraySearch класса Array класса, чтобы найти значение в массиве. Если BinarySearch находит значение, он возвращает индекс значения в массиве. Если значение появляется в массиве более одного раза, BinarySearch возвращает индекс произвольного элемента с целевым значением. (Он просто возвращает то значение, которое он обнаруживает первым во время поиска.)

Если значение не находится в массиве, BinarySearch возвращает отрицательный результат последнего индекса, который он просматривал при поиске. Если отрицательный результат возвращаемого значения не находится за пределами границ массива, то он дает индекс значения вид рядом с целевым значением, если оно присутствует. Позиция может быть не в том месте, где был бы целевой объект, но он должен быть достаточно близок.

Источник: http://csharphelper.com/blog/2016/01/sort-and-search-arrays-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector