问答题 设将n(n>1)个整数存放到一维数组R中。试设计一个在时间和空间两方面都尽可能高效的算法,将R中保存的序列循环左移P(0<0 0,X1,…,Xn-1)变换为(XP2,XP+1,…,Xn-1,X0,X1,…,XP-1)。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度。 【2010年全国试题42(13分)】
【正确答案】正确答案:一次左移一位,循环尼次;设置另一数组,按要求复制到该数组;这里推荐按照下标0到p—1、p到n—1、0到n一1的顺序,将这三段分别逆置,最后的结果即为所求。算法清晰、易读。时间复杂度为O(0),空间复杂度为O(1)。逆置语句的例子为:for(i=0 ; i
【答案解析】