听说这里高手多,特地来请教一道题面试题,请赐教
设将n(n>1)个整数存放到一维数组R中。设计一个在时间和空间两方面尽可能高效的算法。将R中的序列循环左移P(0<P<n)个位置,即将R中的数据由(X0, X1, ……Xn-1)变换为(Xp, Xp-1 …Xn-1,X0, X1……Xp-1)要求:
(1)、给出算法的基本设计思想。
(2)、根据设计思想,采用C或C++或JAVA语言描述算法,关键之处给出注释。
(3)、说明你所设计算法的时间复杂度和空间复杂度。
这是一道考研题,答案网上有。
但是我希望真正理解了这道题的大大,能用自己的语言尽可能详尽的描述问题和解决问题。
ps:我是菜鸟特地来学习的,拍砖请轻点。。。