간단 한 알고리즘 - 1 차원 배열 의 순환 왼쪽 이동

3220 단어 알고리즘
n 개의 요소 가 있 는 배열 을 지정 하여 전체 왼쪽 으로 m 비트 (m < n) 를 이동 시 키 고 시작 에 있 는 것 은 배열 의 끝 으로 순환 합 니 다.
방법 1: 순환 으로 하나씩 이동 하고 더 이상 군말 하지 않 습 니 다.
방법 2: 세 번 의 역 서 를 사용한다.
      m      ,             ,       ,      。
#include 
#include 
#include 

int main(){
    int m=0,n=0,i=0,e=0;
    printf("       :");
    scanf("%d",&n);

    //        
    int *arr=(int*)malloc(n*sizeof(int));
    if(!arr)
        exit(0);
    for(i=0;i1;

    //      
    for(i=0;iprintf("%3d",arr[i]);
    printf("
"
); printf(" :"); scanf("%d",&m); // for(i=0;i2;i++){ e=arr[i]; arr[i]=arr[m-1-i]; arr[m-1-i]=e; } // for(i=0;i2;i++){ e=arr[m+i]; arr[m+i]=arr[n-1-i]; arr[n-1-i]=e; } // for(i=0;i2;i++){ e=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=e; } // for(i=0;iprintf("%3d",arr[i]); printf("
"
); return 0; }

좋은 웹페이지 즐겨찾기