1 //实现将数组A[n]中所有元素循环右移k个位置。
 2 void reverse(int a[],int from,int to){ //将数组a中元素从from到to逆置 
 3     int i,temp;
 4     for(i=0;i<(to-from+1)/2;i++){
 5             temp=a[from+i];
 6               a[from+i]=a[to-i];
 7               a[to-i]=temp;
 8         
 9     }
10 }
11 
12 void conreover(int a[],int n,int k){
13     reverse(a,0,k-1);  //O(k)
14     reverse(a,k-1,n-1);  //O(n-k)
15     reverse(a,0,n-1);    //O(n) 
16 }
17 int main(){
18     int a[5]={1,3,5,2,4};
19     //selectsort(a,5);
20     int i;
21     conreover(a,5,1);
22     for(i=0;i<5;i++){
23         printf("%d\n",a[i]);
24     }
25     return 0;
26 
27 } 
View Code

 

posted on 2021-11-10 09:33  小白社会工程学  阅读(141)  评论(0)    收藏  举报