Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Нахождение наибольшего и наименьшего значений в числовом массиве.
Дан числовой массив М (i), i = 1, 2, …, N. Необходимо определить номер элемента с наибольшим значением.
Начало
Ввод N, M
Nmax: = 1 Mmax: = M(1) i: = 2, …, N
да M(i) > Mmax Mmax : = M(i) Nmax: = i нет
Вывод Nmax, Mmax
Конец
Рис.3. Блок-схема алгоритма нахождения наибольшего элемента массива М
Здесь используются две вспомогательные переменные Mmax и Nmax.Первая предназначена для запоминания значения элемента, вторая – для его порядкового номера. Перед началом цикла этим переменным присваиваются начальные значения – параметры первого элемента массива. На каждом шаге цикла текущий элемент сравнивается с Mmax и если он оказывается больше, Mmax получает новое значение, одновременно запоминается номер этого элемента. По окончании цикла переменные Mmax и Nmax будут равны соответственно максимальному значению в массиве M и порядковому номеру максимального элемента. Примечание. Для того, чтобы отыскать наименьший элемент в заданном массиве достаточно в приведенном алгоритме заменить имена переменных Mmax и Nmax на Mmin и Nmin и в цикле проверять выполнение условия вместо условия M(i) < Mmin. Кроме того, за один проход можно получить обе величины: и Mmax и Mmin. Для этого на каждом шаге цикла нужно проверять два условия – M(i) < Mmin и M(i) > Mmax. Bи при необходимости изменять значения либо Mmin, либо Mmax. Сортировка числового массива. Пусть задан числовой массив М, содержащий N элементов, и необходимо его упорядочить его по возрастанию, то есть перенумеровать элементы этого массива так, чтобы выполнялось условие М 1 £ М 2 £ … £ М N. Существует несколько вариантов алгоритма сортировки. Один из них получил название «метод пузырька» и заключается в следующем. Вводится понятие инверсии, которое означает ситуацию, когда имеет место нарушение порядка расположения элементов в заданном массиве. Например, если массив должен быть упорядочен по возрастанию, а два каких-либо соседних элемента этому свойству не удовлетворяют, то есть имеет место отношение Мi > М i+1. Тогда говорят, что имеет место инверсия элементов с номерами i и i +1. Суть метода пузырька состоит в том, что в заданном массиве по очереди сравниваются соседние элементы между собой и в случае появления инверсии ее устраняют – у таких элементов изменяют значения, М i +1 получает значение М i, а Мi +1. – значение М i. Это процедуру (проверку массива) повторяют несколько раз, до тех пор, пока все инверсии не будут устранены. Отсутствие инверсий означает упорядоченность массива. На рис. 4 показана блок схема одного из вариантов алгоритма сортировки методом пузырька. Сортировка 1 Ввод N, M да F : = 1
F: = 0 нет
i: = 1, 2, …, N-1Вывод M
нет M i +1 < M i да Конец
C : = M i +1 M i +1: = M i M i: = C F: =1
1 Рис.4. Блок-схема алгоритма сортировки В приведенной схеме используются две вспомогательные переменные – F и C. Перед началом цикла переменной F присваивается значение 0. Это признак упорядоченности массива. Если изначально массив M уже упорядочен, то в процессе цикла перебора его элементов условие Мi > М i+1 ни разу не будет выполнено и значение F останется равным 0. Это признак того, что массив уже упорядочен. Если же в процессе перебора хотя бы одна инверсия встретится, значение F изменится на 1 и в этом случае процесс нужно повторить. Переменная C нужна для осуществления обмена значениями между элементами Мi и М i+1 в случае, если имеет место инверсия.
Алгоритмические языки и их классификация
Языки программирования – это искусственные языки записи алгоритмов для исполнения их на ЭВМ. Программирование – составление программы по заданному алгоритму. Классификация языков программирования представлена на рис.5. В овалах приведены названия наиболее популярных языков. Существуют и другие языки программирования, например к процедурным кроме указанных на схеме относятся языки Алгол, СИ, Бейсик и др. Языки Программи- Рования Процедурные Непроцедурные Машино- Машино- SQL QBE Ориентированные независимые Автокод Ассемблер Процедурно- Проблемно- Объектно- Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1345; Нарушение авторского права страницы