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 }
浙公网安备 33010602011771号