- 题目:对一个数组,进行左移p位操作,要求时间、空间复杂度尽量低
- */
- #include<stdio.h>
- #define MAXSIZE 20
- int number[MAXSIZE];
- void Re(int R[],int l,int r)
- {
- int i,j,temp;
- for(i=l,j=r;i<j;i++,j--)
- {
- temp = R[i];
- R[i] = R[j];
- R[j] = temp;
- }
- }
- int main()
- {
- int i,n,p;
- printf("输入数组元素\n");
- scanf("%d",&n);
- printf("输入各个元素\n");
- for(i=0;i<n;i++)
- {
- scanf("%d",&number[i]);
- }
- printf("输入移位次数\n");
- scanf("%d",&p);
- if(p<0||p>n)
- {
- printf("input error!!!");
- return 0;
- }
- Re(number,0,p-1);
- Re(number,p,n-1);
- Re(number,0,n-1);
- printf("结果为\n");
- for(i=0;i<n;i++)
- {
- printf("%d ",number[i]);
- }
- return 0;
- }
数组循环左移P位算法
最新推荐文章于 2023-12-19 09:31:23 发布