Перестановка наоборот (инверсия)
Инверсия (от английского inverse – обратный) – это такая перестановка, когда первый
элемент становится последним, второй – предпоследним и т.д.
Эта простая задача имеет один подводный камень. Пусть размер массива N. Тогда элемент
A[0]надо переставить с A[N-1], A[1]с A[N-2]и т.д. Заметим, что в любом случае сумма
индексов переставляемых элементов равнаN-1, поэтому хочется сделать цикл от 0до N-1, в котором переставить элементы A[i]с A[N-1-i]. Однако при этом вы обнаружите, что массив не изменился. Обратим внимание, что перестановка затрагивает одновременно и первую, и вторую половину массива. Поэтому сначала все элементы будут переставлены правильно, а затем (когдаi> N/2) будут возвращены на свои места. Правильное решение – делать перебор, при котором переменная цикла доходит только до середины массива.
Дата добавления: 2015-10-05; просмотров: 565;