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

 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]);
		
	}
	
} 

  解题分析

 

 

 

posted on 2021-06-26 10:12  upupup-999  阅读(407)  评论(0)    收藏  举报