Главная страница / 25. Типовые алгоритмы: 25.11. Исключение элемент...

25.11. Исключение элементов массивов

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

Сначала рассмотрим простой алгоритм исключения из одномерного массива X, содержащего n элементов, элемента с номером r. При таком исключении место элемента Xr должен занять элемент Xr+1, а его место – элемент Xr+2 и т.д. Общее число элементов в массиве уменьшится на единицу. Этот алгоритм представлен на рис. 25.21, а.

На рис. 25.21, б представлен алгоритм исключения из двумерного массива – матрицы строки ir и столбца jr. Принципиально он не отличается от предыдущего, только на одну позицию сдвигаются не отдельные элементы, а строки и столбцы.

img2521

Рис. 25.21. Блок-схемы алгоритмов исключения из одномерного массива заданного элемента с индексом r (а)
и из двумерного массива – матрицы строки ir и столбца jr (б)

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

Более рациональным, но и более сложным выглядит алгоритм без использования вспомогательного массива, над таким алгоритмом предлагается подумать самостоятельно.

img2522

Рис. 25.22. Блок-схема алгоритма исключения из одномерного массива
всех отрицательных элементов