最高效的循环右移算法
题目描述:将长度为N的数组arr循环右移K位,给出最高效的算法
//最高效的循环右移算法!!
//这个是递归的写法
//author:tengzhao201QQ:715572192
//time:2010-4-24
//时间复杂度为O(n),空间复杂度O(1),交换点在中间时比逆序法快一倍!!!
//提速要点:由于取模运算的效率很低,去掉了取模运算后效率得到大提升;swap函数效率低,引入了temp变量
voidTZshift1(int*arr,intN,intK)
{
K=K%N;
if(0==K)return;
inttemp,qq,pp=0;
pp=0;qq=K;
下载地址
用户评论
不错,值得学习