Основы программирования на языке Turbo Pascal. Беляева И.В. - 40 стр.

UptoLike

Составители: 

40
Задача 21. Вставить в упорядоченный по возрастанию массив новый
элемент таким образом, чтобы сохранилась упорядоченность.
Алгоритм решения задачи следующий:
Ищем в массиве тот элемент, который больше вставляемого. Для этого
последовательно просматриваем все элементы, начиная с первого.
Увеличиваем длину массива на 1.
После этого все элементы, стоящие правее от найденного, включая сам
найденный элемент, сдвигаются вправо.
На освободившуюся позицию вставляется искомый элемент.
Замечание: если все элементы массива меньше вставлямого, то новый
элемент надо вставить в конец массива. Если все элементы массива
больше вставляемого, то новый элемент надо вставить в начало массива.
Пример: Надо вставить 5 в массив A: 3 4 7 9.
1. Ищем элемент, больший вставляемого. Это элемент A[3]=7.
2. Увеличиваем длину массива на 1.
3. Получаем массив A: 3 4 7 9 X.
4. Сдвигаем элементы, начиная с 3-го, вправо. Получаем массив A: 3 4 7 7 9.
5. В элемент A[3] заносим 5.Получаем массив: 3 4 5 7 9.
Фрагмент программы, реализующей данный алгоритм:
{Считываем число, которое надо вставить в массив}
read(g);
{1. Ищем элемент больше вставляемого}
k := 1; {k – индекс сравниваемого элемента}
{Ищем в массиве первый из элементов, которые больше
вставляемого элемента}
while (k <= n) and (a[k] <= g) do
k := k + 1;
{2. Увеличиваем длину массива на 1}
n := n + 1;