Глава 3. Алгоритмы, использующие одномерные массивы - 3.6. Обмен значений элементов

E-mail Печать PDF
Рейтинг пользователей: / 10
ХудшийЛучший 
Индекс материала
Глава 3. Алгоритмы, использующие одномерные массивы
3.2 Задачи заполнения массива
3.3. Задачи анализа массива
3.4. Нахождение элементов, обладающих определенным свойством
3.5. Изменение значений некоторых элементов
3.6. Обмен значений элементов
3.7. Удаление и вставка элементов массива
3.8. Алгоритмы, реализуемые с помощью циклов с предусловием
3.9. Использование вложенных циклов
Все страницы

3.6. Обмен значений элементов

Пример 3.12. В массиве поменять местами два соседних элемента с номерами k1 и k2.

Номера элементов, которые меняются местами, должны быть известны.

Дано: n - размер массива; A[n] - массив вещественных чисел; k1, k2 - номера элементов, подлежащих обмену.

Найти новый массив А размера n.

Фрагмент алгоритма решения задачи выглядит так:

x = A[k1]; A[k1] = A[k2]; А[k2] = x.

Здесь х - вспомогательная переменная, в которой сохраняется первоначальное значение элемента массива A[k1].

Тест

k1=2; k2 = 6

Данные

Результат

N=9

A=(3, 1, 10, 1, 6, 5, 12, 36, -15)

A = (3, 5, 10, 1, 6, 1, 12, 36, -15)

     

Усложним задачу.

Пример 3.13. Дан одномерный массив A, состоящий из 2n элементов. Поменять местами его половины.

Дано: ? n - размер массива; A[n] - массив вещественных чисел.

Найти новый массив А размера 2 ? n.

Словесное описание алгоритма.

Пусть массив А состоит из 10 элементов, тогда n = 5. Из массива
А(1, 12, 23, 3, 7, 13, 27, 6, 9, 11) нужно получить массив А(13, 27, 6, 9, 11, 1, 12, 23, 3, 7). Мы должны поменять местами элементы с номерами 1 и 6, 2 и 7, 3 и 8, 4 и 9, 5 и 10, иными словами 1 и n + 1, 2 и n +2, 3 и n + 3, 4 и n + 4, 5 и n + 5. Можно заметить, что элемент с номером i меняется местами с элементом с номером n + i. Поэтому, используя фрагмент алгоритма, приведенный в примере 3.12, можно применить такой цикл:

нц

Для  i от 1 до n повторять

    x = A[i]

A[i] = A[n + i]

A[n + i] = x

кц

Задачи для самостоятельного решения

1. Дан одномерный массив. Поменяйте местами:

а) первый и максимальный элементы массива;

б) второй и минимальный элементы массива;

в) первый и последний отрицательный элементы массива.

2. Дан одномерный массив А, состоящий из 2n элементов. Поменяйте местами его половины следующим образом: первый элемент поменять местами с последним, второй - с предпоследним и так далее.

3. Дан одномерный массив В, состоящий из 2n элементов. Переставьте его элементы по следующему правилу:

а) b[n + 1], b[n + 2], ..., b[2n], b[1], b[2], ..., b[n];

б) b[n + 1], b[n + 2], ..., b[2n], b[n], b[n - 1],..., b[1];

в) b[1], b[n + 1], b[2], b[n + 2], ..., b[n], b[2n];

4. Дан одномерный массив. Переставьте в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры