题目描述:将长度为N的数组arr循环右移K位,给出最高效的算法 //最高效的循环右移算法!! //这个是递归的写法 //author:tengzhao201 QQ:715572192 //time:2010-4-24 //时间复杂度为O(n),空间复杂度O(1),交换点在中间时比逆序法快一倍!!! //提速要点:由于取模运算的效率很低,去掉了取模运算后效率得到大提升;swap函数效率低,引入了temp变量 void TZshift1(int* arr,int N,int K) { K=K%N; if(0==K)return; int temp,qq,pp=0; pp=0;qq=K; for(int i=0;i
2021-11-12 16:46:15 70KB 循环右移 简洁 高效 课程设计
1
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A 0 ​ A 1 ​ ⋯A N−1 ​ )变换为(A N−M ​ ⋯A N−1 ​ A 0 ​ A 1 ​ ⋯A N−M−1 ​ )(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
2021-10-14 14:02:32 396B C语言 数组
51单片机基础例程
2021-07-04 14:03:43 7KB 51单片机基础例程
1
51单片机基础例程
2021-07-04 14:03:29 12KB 51单片机基础例程
1
51单片机基础例程
2021-07-04 14:03:28 12KB 51单片机基础例程
1