Студопедия — Инициализация переменных минимума и максимума в алгоритмах
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Инициализация переменных минимума и максимума в алгоритмах






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

Пример 32
В школе среди учеников 10 – 11-х классов производится набор игроков в школьную баскетбольную команду. Ученики, играющие в баскетбол, должны быть не ниже 185 см, но и не выше 205 см. Определите, какой рост будет у самого низкого игрока в баскетбольной команде.

Решение. Предположим, что все ученики требуемого роста будут играть в баскетбольной команде. Тогда для определения самого низкого игрока необходимо найти минимум среди учеников, чей рост не меньше 185 см, но и не больше 205 см.

Для решения задачи можно использовать алгоритм последовательного поиска минимума среди всех учеников с дополнительной проверкой: на каждом шаге надо определять, попадает ли рост очередного ученика в необходимый диапазон, и только среди таких учеников искать минимальное значение роста.

Однако инициализировать переменную минимума значением роста первого ученика нельзя, так как этот рост может не удовлетворять требованиям игроков баскетбольной команды (например, рост первого ученика – 170 см). Поэтому мы должны инициализировать переменную минимума тем значением, которое будет заведомо не меньше искомого минимального значения. Самое логичное – инициализировать переменную минимума самым высоким ростом, с которым ученик может быть допущен в баскетбольную команду, то есть 205.

Приведем другой пример.
Пример 33
Найти два минимальных по значению элемента массива.
Решение. Запишем алгоритм поиска двух минимумов, однако коснемся инициализации переменных минимума после рассмотрения алгоритма:

1. Пусть минимум первый и минимум второй проинициализированы первым элементом массива: min1=min2 = a1.

2. Установить счетчик равным 1 (i = 1).

3. Если исследованы еще не все элементы (i < n), то перейти к шагу 4, иначе алгоритм окончен (два минимальных элемента равны min1 и min2 соответственно).

4. Перейти к следующему элементу (увеличить i на единицу).

5. Если текущий элемент меньше, чем минимум (ai < min1), то присвоить min2 значение min1, а присвоить min1 значение ai, иначе если текущий элемент меньше, чем второй минимум (ai < min2), то присвоить min2 значение ai.

6. Перейти к шагу 3.

Отметим, что этот алгоритм похож на алгоритм одновременного поиска максимального и минимального элементов массива.

Рассмотрим более подробно инициализацию переменных обоих минимумов. Предположим, что обе эти переменные будут инициализированы значением первого элемента массива. Посмотрим, как отработает данный алгоритм на массиве 1 8 3 6 2 в этом случае. Так как обе переменные мы инициализируем самым маленьким значением среди всех элементов массива, то на пятом шаге алгоритма замены значений переменных обоих минимумов не произойдет, и в результате обе переменные будут равны 1, что не верно: min1 = 1, min2 = 2.

Мы получили неверный ответ, так как неверно инициализировали обе переменные минимума самым маленьким значением в массиве.

Возможное решение. Упорядочим первые два элемента массива и инициализируем переменную первого минимума меньшим из двух значений, а вторую переменную – оставшимся значением. Тогда алгоритм можно начинать с третьего элемента массива. Посмотрим, как будут меняться значения переменных min1 и min2 на каждом шаге алгоритма для массива 1 8 3 6 2.

  min1 min2
0 шаг: инициализация    
1 шаг:    
2 шаг:    
3 шаг:    


В результате работы алгоритма первый минимум равен 1, а второй минимум равен 2, что соответствует истине.







Дата добавления: 2015-09-04; просмотров: 1106. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия