본문 바로가기
Computer Science

Shift Or pattern mathcing

by OKOK 2021. 4. 24.
int preSo(char *x, int m, usinged int s[]){
	usigned int j, lim;
    int i;
    for(i =0 ; i<ASIZE; ++i)
    {
    	S[i] = ~0;
    }
    for(lim = i =0 , j=1; j<m; ++i, j<<=1)
    {
    	S[x[i]] &= ~j;
        lim |= j;
	}
    lim = ~(lim >> 1);
    return(lim);
}

 

S['h'] &= ~J 값에다가 구멍을 내라는 의미임

비트연산 구멍 뚫기. 

패턴의 위치. 메모리를 아끼기 위해서 bit field를 사용함.

lookup table을 사용해서 메모리를 더욱 쓰였으나, m+n 이므로 시간은 줄어듦.

확장 비트맵을 만드는 방법에 대해서도 풀어쓰면 좋겠음.

아직은 n 회전을 돌아야 하므로.. 더 나은 알고리즘을 다음 시간에 해보겠음

'Computer Science' 카테고리의 다른 글

Knuth-Morris-Pratt Pattern Matching (KMP)  (0) 2021.04.24
Morris-Pratt Pattern Matching  (0) 2021.04.24
CRC 개념  (0) 2021.04.24
State Pattern  (0) 2021.04.19
TS 서점  (0) 2021.03.31

댓글