...将数组A[0...n]中的所有元素循环右移K位,要求只有一个数组元素大...
发布网友
发布时间:2024-02-04 03:05
我来回答
共1个回答
热心网友
时间:2024-04-07 02:39
1.首先交换两个变量的值,通常使用一个附加的中间变量进行过度.我通俗的举例,就是有1杯牛奶和1杯咖啡,要交换这两个杯子里的东西,就得有1个空杯子.
2.那么数组元素的移动,无非也是变量值的交换,你是右移动K位,那么假设用变量T过度.
设现在要将 i 移到 i+K 的位置,(假设 i 和 i+k 在0--N之间)应该:
T = A(I+K)
A(I+K) = A(I)
A(I) = T
接下来,要考虑,当 i + K 大于n的处理,留给你自己解决吧!