Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Нахождение наибольшего и наименьшего значений в числовом массиве.

Дан числовой массив М (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; Просмотров: 30; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.084 с.) Главная | Обратная связь