主题:请教一个有关数组移位的算法
jdxyw
[专家分:230] 发布于 2007-05-31 13:32:00
一个数组,比如是 a b c d e f g现在向左移动两位,变为f g a b c d e 怎么只使用一个额外空间,在O(n)时间里完成?
回复列表 (共3个回复)
沙发
朋友,你还好吗? [专家分:40] 发布于 2007-06-06 12:55:00
等我两天!谢谢!
板凳
spweng [专家分:0] 发布于 2007-06-06 21:30:00
#include<iostream.h>
#include<iomanip.h>
const n=10;
int a[n];
void main(){
for(int i=0;i<n;i++)
a[i]=i;
int t;
for(i=n-1;i>1;i--){
int j=(i+2)%n;
t=a[j];
a[j]=a[i];
a[i]=t;
for(int k=0;k<n;k++)
cout<<setw(2)<<a[k];
cout<<endl;
}
}
3 楼
bpttc [专家分:8790] 发布于 2007-06-06 23:45:00
mark
我来回复