알고리즘

오른쪽 회전 코드

우와해커 2017. 10. 13. 16:26

오른쪽 회전 코드

 

배운점:배열 하나로 충분, 두개 생성해서 낭비, 깊은복사, memcpy(string.h)

 

#include <stdio.h>
#include <string.h>
int arr1[] = {1,2,3,4,5,6,7,8};
int arr2[] = {0,};
int test(int *arr1, int *arr2){
for(int i=0;i<sizeof(arr2);i++){
printf("%d ", arr2[i]);
}
return 0;
}
void right_rotate(int s, int t){
int last = arr1[t]; //목적지 초기값 보관
for(int start=s,end=t;start<=end;end--){
arr2[end] = arr1[end-1];
}
arr2[s] = last;
}
int main()
{
memcpy(arr2,arr1,sizeof(arr1));
right_rotate(0,2);
test(arr1, arr2);
return 0;
}

 

 

https://www.tutorialspoint.com/compile_c_online.php

https://colorscripter.com/