博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组循环移位(编程之美2.17)

Posted on 2010-09-23 21:51  KurtWang  阅读(302)  评论(0编辑  收藏  举报
#include "stdafx.h"

void reverse(int * arr, int left, int right)
{
	for(;left<right;left++,right--)
	{
		int temp = arr[left];
		arr[left] = arr[right];
		arr[right] = temp;
	}
}
void shift(int * arr, int len, int k)
{
	reverse(arr,0,len-k-1);
	reverse(arr,len-k,len-1);
	reverse(arr,0,len-1);

}

int _tmain(int argc, _TCHAR* argv[])
{
	int arr[5] = {1,2,3,4,5};
	shift(arr,5,2);
	for(int i=0;i<5;i++)
		printf("%d ",arr[i]);
	return 0;
}