回复 3楼 九转星河
我 2楼的循环一共就执行 n + m = 8 次赋值至于你说的是这个吧

void fun(int a[], int n, int m) { for (int i = n - 1; i >= m; --i) { swap(&a[i], &a[i - m]); } }
老实说,一次交换就得 3次赋值,3 * (n - m) = 12 ,效率反而低了

[fly]存在即是合理[/fly]
void fun(int a[], int n, int m) { for (int i = n - 1; i >= m; --i) { swap(&a[i], &a[i - m]); } }