算法思想
①将p(p为移动距离)以前元素倒置
②将p以后位置倒置
③最后整体进行倒置
代码演示
#include <iostream>
using namespace std;
#define n 7
//倒置函数
void reverse(int *arr, int begin, int end) {
for (int i = begin, j = end; i < j; ++i, --j) {
swap(arr[i], arr[j]);
}
}
int main() {
//为了简便起见,没有太多的判断逻辑,大家可以自行添加
int p = 3;
int arr[n] = {1, 2, 3, 4, 5, 6, 7};
reverse(arr, 0, p - 1);
reverse(arr, p, n - 1);
reverse(arr, 0, n - 1);
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}