Поиск минимального и максимального элементов массива
Процесс поиска минимального или максимального элемента массива обычно осуществляется при помощи операторов цикла. Перед запуском цикла предполагается, что один из элементов массива является минимальным или максимальным (обычно это первый элемент массива). Значение выбранного элемента массива принимается за эталонное. Цикл выполняется для всех элементов массива за исключением выбранного. Если выбран первый элемент массива, то цикл можно организовывать со второго элемента массива. В цикле осуществляется сравнение значений элементов массива с выбранным. Если при этом сравнении один из элементов массива оказывается больше (поиск максимального значения) или меньше (поиск минимального значения) текущего элемента, то значение текущего элемента массива принимается за эталонное. Цикл продолжает свое выполнение до нахождения нового эталонного значения или до его остановки (после перебора всех значений массива). Рассмотрим пример. Необходимо найти минимальное значение элементов массива из 5 целых чисел. Алгоритм действий следующий: объявим массив целых чисел "а" из 5 элементов и задаем (или вводим с клавиатуры или файла) значения элементов массива, сохраняем количество элементов в массиве в переменной "n". Принимаем, что первый элемент массива является минимальным. Организуем цикл перебора элементов массива, начиная со второго элемента массива. В цикле осуществляется проверка - является ли значение, сохраненное в min, меньше значения текущего элемента. Если значение текущего элемента оказывается меньше, чем значение, находящееся в min, то заносим его в переменную min. После выполнения описанных действий в переменной min будет находиться минимальное значение массива.
int a[5]={3,5,4,1,2}; // создан массив целых чисел из 5 элементов n=5;// определение количества обрабатываемых элементов min=a[0];// принимаем, что первый элемент массива // является минимальным for(i=1;i<n;i++) // цикл перебора элементов массива if(min>a[i]) // проверка, является ли значение, сохраненное в min, // меньше значения текущего элемента min=a[i];// если значение текущего элемента // оказывается меньше min Рассмотрим более подробно пример выполнения программы при поиске минимального числа среди последовательности чисел 3,5,4,1,2. При старте цикла в min=3, т.к. a[0]=3. Цикл выполнится 4 раза, т.е. переменная i будет принимать значения 1,2,3,4 (это задано в операторе цикла for). При i=1 в цикле сравнивается значения min=3 и a[1]=5. Значение min меньше значения a[1], т.е. условие min>a[1] не выполняется. При i=2, сравниваются значения min=3 и a[2]=4. Значение min меньше значения a[2], т.е. условие min>a[2] не выполняется. При i=3 сравниваются значения min=3 и a[3]=1. Значение min больше значения a[3], т.е. найдено значение, меньше min. Значение min=a[3]. Это значение используется как эталонное для дальнейшего поиска минимального (до тех пор будет найдено новое наименьшее значение). При i=4 сравниваются значения min=1 и a[4]=4. Если значение в min меньше, то условие min>a[1] не выполняется. При необходимости нахождения максимального элемента массива в операторе сравнения меняется знак с "больше" на "меньше".
|