设将n(n>1)个整数存放到一维数组R中。试设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(X0,X1,…,Xn-1)变换为(Xp,Xp+1,…Xn-1,X0,X1,…,Xp-1)。 要求:

admin2015-12-30  26

问题 设将n(n>1)个整数存放到一维数组R中。试设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(X0,X1,…,Xn-1)变换为(Xp,Xp+1,…Xn-1,X0,X1,…,Xp-1)。
要求:
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。

选项

答案使用C语言描述算法如下: Void Reverse(int R[],int from,int to){ int i,temp; for(i=0,i<(to-from+1)/2,i++) {temp=R[from+i];R[from+i]=R[to-i];R[to-i]=temp;} }//Reverse void Converse(int R[],int n,int p){ Reverse(R,0,P-1); Reverse(R,P,n-1); Reverse(R,0,n-1); }

解析
转载请注明原文地址:https://kaotiyun.com/show/s7xi777K
0

最新回复(0)