На этом шаге мы рассмотрим алгоритм нахождения наибольшего элемента в массиве.
Как пример обработки содержимого массива рассмотрим задачу о поиске наибольшего элемента в числовом массиве. Соответствующая программа представлена ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr53_1 { class Program { static void Main() { // Переменные для записи значения элемента и индекса: int value, index; // Размер массива: int size = 15; // Объект для генерирования случайных чисел: Random rnd = new Random(); // Создание массива: int[] nums= new int[size]; // Заполнение и отображение массива: for (int k = 0; k < nums.Length; k++){ // Значение элемента массива: nums[k] = rnd.Next(1,101); // Отображение значения элемента: Console.Write(nums[k]+" "); } Console.WriteLine(); // Поиск наибольшего элемента: index = 0; // Начальное значение для индекса value = nums[index]; // Значение элемента с индексом // Перебор элементов: for (int k = 1; k < nums.Length; k++){ // Если значение проверяемого элемента больше // текущего наибольшего значения: if ( nums[k] > value ){ value = nums[k]; // Новое наибольшее значение index = k; // Новое значение для индекса } } // Отображение результата: Console.WriteLine("Наибольшее значение: " + value); Console.WriteLine("Индекс элемента: " + index); // Задержка: Console.ReadLine(); } } }
В программе создается целочисленный массив, заполняется случайными числами (в диапазоне значений от 1 до 100 включительно), а после этого выполняется поиск элемента с наибольшим значением. Программой в консольное окно выводится сообщение о том, какое максимальное значение и какой индекс у элемента с максимальным значением.
Результат выполнения программы может быть таким (с поправкой на использование генератора случайных чисел).
Рис.1. Результат работы приложения
Для запоминания значения элемента и его индекса используются целочисленные переменные value и index. Размер массива, который создается и заполняется случайными числами, определяется значением целочисленной переменной size (значение переменной равно 15 - то есть создается массив из 15 элементов). Для генерирования случайных чисел с помощью команды
Random rnd = new Random();
Целолочислснный массив создается командой
int[] nums= new int[size]; .
nums[k] = rnd.Next(1,101); ,
После присваивания значения элементу массива это значение отображается в консольном окне командой
Console.Write(nums[k]+" "); .
После того как массив создан и заполнен, начинается поиск элемента с наибольшим значением. Алгоритм используется следующий. Мы рассматриваем начальный элемент в массиве как такой, что имеет максимальное значение. Это первый "претендент" на звание элемента с наибольшим значением. Затем последовательно перебираем все прочие элементы, и, как только находим элемент с большим значением, он занимает место "претендента". В контексте этого алгоритма командой
index = 0; // Начальное значение для индекса
value = nums[index]; // Значение элемента с индексом .
value = nums[k]; // Новое наибольшее значение
index = k; // Новое значение для индекса
Таким образом, после завершения выполнения цикла в переменную value записано значение наибольшего элемента в массиве, а и переменную index записано значение индекса этого элемента (если таких элементов несколько, то индекс первого из них). Командами
Console.WriteLine("Наибольшее значение: " + value);
Console.WriteLine("Индекс элемента: " + index);
На следующем шаге мы закончим изучение этого вопроса.