Алгоритмы обработки одномерных числовых массивов - часть 6
Напомним, что заполнение таблицы происходит по строкам. Считаем, что все начальные значения числовых переменных равны 0.
В таблице 5 выполнена трассировка фрагмента поиска второго нулевого и последнего положительного элементов (их номеров), а в таблице 6 выполнена трассировка следующего фрагмента алгоритма по перестановке в массиве найденных элементов, где K- текущий номер элемента, A[K] - текущее значение элемента массива, М- количество нулей, обнаруженных в массиве при анализе очередного элемента, P- номер второго нулевого элемента массива, S- номер последнего положительного элемента массива, A[S] - значение последнего положительного элемента массива, A[P] - значение второго нулевого элемента массива.
Таблица 5.Таблица трассировки операций Таблица 6. Таблица трассировки
поиска второго нулевого элемента и перестановки найденных элемен-
последнего положительного тов массива
К |
Входной массив А(К) |
M |
М=2 |
Р |
S |
|
A(P) А(6) |
Q |
А(S) А(3) |
Выходной массив А(К) |
|
1 |
5 |
0 |
Нет |
|
1 |
0 |
0 |
4 |
1 |
5 |
|
2 |
0 |
1 |
Нет |
|
|
4 |
0 |
4 |
2 |
0 |
|
3 |
4 |
|
|
|
3 |
4 |
0 |
0 |
3 |
0 |
|
4 |
-3 |
|
|
|
|
|
|
|
4 |
-3 |
|
5 |
-7 |
|
|
|
|
|
|
|
5 |
-7 |
|
6 |
0 |
2 |
Да |
6 |
|
|
|
|
6 |
4 |
|
7 |
-2 |
|
|
|
|
|
|
|
7 |
-2 |
|
8 |
-4 |
|
|
|
|
|
|
|
8 |
-4 |
|
9 |
0 |
3 |
Нет |
|
|
|
|
|
9 |
0 |
Пример 12. Составить алгоритм удаления в одномерном массиве элемента с максимальным значением.
Решение. Анализ постановки задачи позволяет выделить две последовательно решаемые задачи: поиск элемента с максимальным значением и удаление этого значения из массива.