今天学习数据结构与算法发现这个算法还是挺常用的,记录一下嘿嘿

C++代码
#include<stdio.h>
//解题思想 由AB得到BA 可以将A逆置,B逆置,再将AB同时逆置
//1 2 3 4 5 6 7 8
//循环左移3次
//4 5 6 7 8 1 2 3
void Reverse(int R[],int from,int to){
int temp,i;
for(i=0;i<(to-from+1)/2;i++)
{
temp=R[from+i];
R[from+i]=R[to-i];
R[to-i]=temp;
}
}
void Converse(int R[],int n,int p){
Reverse(R,0,p-1);
Reverse(R,p,n-1);
Reverse(R,0,n-1);
}
int main(){
int a[]={1,2,3,4,5,6,7,8};
Converse(a,8,3);
for(int i=0;i<8;i++)
{
printf("%d ",a[i]);
}
}
解题分析


浙公网安备 33010602011771号