알고리즘
오른쪽 회전 코드
우와해커
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;}