지금 쓰려고 하는 프로그램에서 그 .. circular shift 라고 해야되나.. 우측으로 1씩 자리 이동한다면
아래처럼 쉬프트 되는걸 써야됨
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 가
{9, 0, 1, 2, 3, 4, 5, 6, 7, 8} 됨
그래서 생각한게 모듈러 연산을 이용해서
우측으로 k칸씩 이동해야된다면
void cshift(int* input, int* output, int k) {
for(int n=0;n<10;n++) {
int index=mod((n+k),10);
output[index] = input[n];
}
}
이렇게 해놨는데 궁금한 점은 모듈러를 쓰는 거랑 if 문을 쓰는거 중에 뭐가 더 나은지 모르겠음 ...
모듈러를 쓰면 코드가 좀 클린해보이긴한데... if문을 쓰는거에 비해 느려지지 않을까라는 생각이 듬
위에 코드는 걍 cpu에서 쓰는 코드로 적어놨지만 사실 적용해야되는건 gpu라서
속도가 느려진다면 코드가 깔끔해진다한들 의미가 없으니까 ...
어 .. 근데 왜 퍼센트 기호가 안써지지;
댓글 0