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 |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
특정 값을 기준으로 작은 값과 큰 값 구분하기, 트리 구조 도식도 (0) | 2017.08.16 |
---|---|
List 인터페이스, Array vs List, List 인터페이스의 계층도 (0) | 2017.07.30 |
Set 인터페이스 계층도, Set의 구현 클래스 (0) | 2017.06.24 |
게시판 페이징 알고리즘 2 (0) | 2017.06.13 |
LinkedList<E>, LinkedList생성자 요약, Class LinkedList<E> (0) | 2017.06.06 |