게시판 페이징 알고리즘 1

CODEDRAGON Development/Algorithm, DataStructure

반응형

 

 

게시판 페이징 알고리즘 1

총 건수(m)를 한 페이지에 보여줄 게시물 수(n)로 나누고 1을 더하면 총 페이지수를 얻을 수 있다.

페이지수 = ( 건수 - 1) / 페이지당 보여줄 건수 + 1

 

 

 

 

페이징 오류

총 게시물 수(m)와 한 페이지에 보여줄 게시물 수(n)를 나눈 나머지 값이 0이 아닐 때 페이징 오류가 발생합니다.

나누었을 때 나머지가 0인 아닌 경우는 를 해결하기 위해 m/n값에 1을 더해 줍니다.

그렇게 되면 다시 나누었을 때 나머지가 0인 경우에 페이지 오류가 발생합니다. 이를 해결하기 위해 총 게시물수에서 -1을 뺀 후 결과값을 리턴합니다. 그러면 정확한 페이징 처리가 됩니다.

 

게시물의 총 건수

(m)

페이지당 보여줄 게시물 수

(n)

총 페이지 수

m/n

m/n+1

(m-1)/n

(m-1)/n+1

/

1

2

1

1/2=0.5

1/2+1=1.5

(1-1)/2=0

(1-1)/2+1=1

1

2

2

1

2/2=1

2/2+1=2  

(2-1)/2=0.5

(2-1)/2+1=1.5

1

3

2

2

3/2=1.5

3/2+1=2.5  

(3-1)/2=1

(3-1)/2+1=2

2

4

2

2

4/2=2

4/2+1=3

(4-1)/2=1.5

(4-1)/2+1=2.5

2

5

2

3

5/2=2.5

5/2+1=3.5

(5-1)/2=2

(5-1)/2+1=3

3

6

2

3

6/2=3

6/2+1=4

(6-1)/2=2.5

(6-1)/2+1=3.5

3

7

2

4

7/2=3.5

7/2+1=4.5

(7-1)/2=3

(7-1)/2+1=4

4

8

2

4

8/2=4

8/2+1=5

(8-1)/2=3.5

(8-1)/2+1=4.5  

4