Данная простенькая задача возникает иногда в более сложных алгоритмах.
Имеется произвольная строка символов(либо одномерный массив). В ней выделяются 2 фрагмента одинаковой длины, непересекающиеся друг с другом. Нужно поменять их местами.
Например: Есть "qwertyuiopasdf", нужно получить "iopasyuqwertdf".
Простой цикл, в котором поочередно меняются соответствующие символы обеих фрагментов:
/* a - индекс начала первого фрагмента b - индекс начала второго фрагмента m - длинна обеих фрагментов n - общее количество элементов */ for i = 0 to m-1 if b+i >= n return tmp = str[a+i] str[a+i] = str[b+i] str[b+i] = tmp