Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритмы обработки одномерных массивов

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

Пример одномерного массива (таблица 9.4.).

Таблица 9.4.

15,7 0.45 -1,7   35,3 21,7 45,3 5,0 141,4 16,9
1 – й элемент массива 2 – й элемент массива 3 – й элемент массива 4 – й элемент массива 5 – й элемент массива 6– й элемент массива 7 – й элемент массива 8 – й элемент массива 9 – й элемент массива 10 – й элемент массива

 

Пример многомерного числового массива (двухмерного, таблица 9.5.)

Таблица 9.5.

  Номера столбцов
  Номера строк          
        -34
    -45 -57  
         
    -78    

 

 

Ввод-вывод элементов одномерного массива

При вводе одномерного массива необходимо последовательно вводить 1-й, 2-й и т.д. элементы массива, аналогично поступают при выводе. Для ввода или вывода массива необходимо организовать цикл. Наиболее удобно использовать для ввода и вывода одномерного массива алгоритм с использованием безусловного цикла (рис.9.12.).

 


I=1,N

 


 

Ввод

 


Рис.9.12. Алгоритм ввода массива с использованием безусловного цикла

 

Вычисление суммы элементов массива

Пусть дан массив X, состоящий из n элементов. Нужно найти сумму элементов данного массива. Переменной S присваивается значение равное нулю, затем последовательно суммируются элементы массива X (рис.9.13.).

S=0


 

I=1,N

 

 


 

S=S+Xi

 


Рис.9.13. Алгоритм вычисления суммы элементов массива

Вычисление произведения элементов массива

Дан массив Х, состоящий из n элементов. Необходимо найти произведение элементов данного массива. Решение этой задачи сводится к тому, что значение переменной Р, в которую предварительно была записана единица, последовательно умножается на значение I – го элемента массива (рис.9.14.).

 

Р=1

 

Р=S*Xi
I=1,N

 

 


Рис. 9.14. Вычисление произведения элементов массива

Поиск максимального элемента в массиве и его номера

Пусть дан массив Х, состоящий из n элементов. Необходимо найти максимальный элемент массива и его номер, под которым он хранится в массиве (рис.9.15.).

Пусть в переменной с именем Мах хранится значение максимального элемента массива, а в переменной с именем Nmax – его номер. Предположим, что первый элемент массива является максимальным и запишем его в переменную Мах, а в Nmax занесем его номер, т.е. – 1. Затем все элементы, начиная со второго, сравниваем в цикле с максимальным. Если текущий элемент массива оказывается больше максимального, то записываем его в переменную Мах, а в переменную Nmax – текущее значение индекса i

Мах=Х1 Nmax=1

 


 

 

i=2,N


 

 

Мах<

 


Вывод Мах, max
Мах=Xi Nmax=i

 

 


Рис. 9.15. Поиск максимального элемента и его номера в массиве

 

Таблица. 9.6. Определение максимального элемента и его номера в массиве

Номера элементов              
Исходный массив              
Значение переменной Мах              
Значение переменнойNmax              

Поиск минимального элемента в массиве и его номера

Пусть дан массив Х, состоящий из n элементов. Необходимо найти минимальный элемент массива и его номер, под которым он хранится в массиве (рис.5.16.).

Пусть в переменной с именем Мин хранится значение минимального элемента массива, а в переменной с именем Nmin – его номер. Предположим, что первый элемент массива является минимальным и запишем его в переменную Мин, а в Nmin занесем его номер, т.е. – 1. Затем все элементы, начиная со второго, сравниваем в цикле с минимальным. Если текущий элемент массива оказывается меньше минимального, то записываем его в переменную Мин, а в переменную Nmin – текущее значение индекса.

Мин=Х1 Nmin=1

 


 

i=2,N

 

 


Мин<
нет

 

 


Вывод Мин, Nmin
да

Мин=Xi Nmin=i

 


Рис. 9.16. Поиск минимального элемента и его номера в массиве

 

Таблица. 9.7. Определение минимального элемента и его номера в массиве

Номера элементов              
Исходный массив              
Значение переменной Мин              
Значение переменной Nmin              

 

Сортировка элементов в массиве

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

- сортировка методом «пузырька»;

- сортировка обменом;

- сортировка выбором;

- сортировка вставкой.

Сортировка методом «пузырька».

Задан массив Y из n целых чисел. Необходимо разложить их в порядке возрастания. Сравним первый элемент массива со вторым, если первый окажется больше второго, то поменяем их местами. Аналогично поступим для второго, третьего, i-го, (i+1), (n-1), n-го элементов. В результате этих действий самый большой элемент станет на последнем месте. Повторяем данный алгоритм сначала, но без рассмотрения последнего элемента n, так как он уже стал на свое место. Так повторяем до тех пор, пока не упорядочится весь массив.

В таблице 9.8 подробно расписан процесс упорядочения элементов в массиве. Для преобразования массива из n элементов, необходимо просмотреть его n-1 раз, каждый раз уменьшая диапазон просмотра на один элемент.

Таблица. 9.8. Процесс упорядочения элементов в массиве по возрастанию

 

Номер элемента          
Исходный массив          
Первый просмотр          
Второй просмотр          
Третий просмотр          
Четвертый просмотр          

 

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

 


J=1, n-1

i=1, n-j

 


нет

Yj>Yj+1

 


да

b=Yj+1 Yj+1=Yj Yj=b

 


Рис. 9.17. Сортировка массива пузырьковым методом

Сортировка выбором ( рис.9.18.).

Найдем в массиве самый большой элемент (блоки 3-7) и поменяем его местами с последним блоком (блок 8). Повторим алгоритм поиска максимального элемента, уменьшив количество просматриваемых элементов на единицу (блок 9) и поменяем его местами с предпоследним элементом (блок 3-7). Описанную выше операцию поиска проводим до полного упорядочения элементов в массиве. Так как в блоке 9 происходит изменение переменой n, то в начале алгоритма ее значение необходимо сохранить (блок 1).

1 k=n


 

9 n=n-1
2 j=1,k

 

 


3 Мах=Y1

 

4 Nom=1
8 b=Ynom Ynom =Yn Yn =b  

 


5 i=2,n

 

 


6 Yj>max
нет

 


да

7 b=Yj+1 Yj+1=Yj Yj=b

 

 


 

Рис.9.18. Сортировка массива выбором наибольшего элемента

 

Сортировка вставкой

Сортировка вставкой (рис.9.19; рис.9.20.) заключается в том, что сначала упорядочивается два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.

Пример. Имеется массив из восьми элементов. Нужно седьмой элемент вставить между вторым и четвертым

 

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8

x

 


Рис. 9.20. Процесс вставки элемента в массив

Сохраним седьмой элемент во вспомогательной переменной Х, а на его место переместим шестой элемент, на место шестого поместим пятый, на место пятого помести четвертый, на место четвертого помести третий. На место третьего поместим их переменой Х седьмой элемент.

 

 

1 пуск
пуск

4 i=2,n

2 n

10 Yj+1=X
5 X=Yi

 

6 j=i+1
3 i=1,n

 


 

 


7 i=2, n
нет

4 Yj

 


8 Yj+1=Yj
да

11 i=1,n

 

9 j=j-1
12 Yj

 

 


останов

 

 

Рис.9.21. Сортировка массива вставкой

Удаление элемента из массива

Необходимо удалить из массива Х, состоящего из n элементов, m -й по номеру элемент. Для этого достаточно записать элемент (m+1) на место элемента m, (m+2) на место (m+1) и т.д (рис.5.20, таблица 9.9.).

Таблица № 9.9. Процесс удаления элемента из массива

 

      ….. m m+1 m+2 m+3 m+4 ….. n-1 n

i=m,n-1

 

i=1,n-1

Xi=Xi+1

Xi

 


 

 


Рис. 9.20. Алгоритм удаления элемента из массив

 

<== предыдущая лекция | следующая лекция ==>
Алгоритмы циклической структуры | Алгоритмы обработки двумерных массивов
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 1300; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.069 сек.