码迷,mamicode.com
首页 > 编程语言 > 详细

分页算法

时间:2017-11-06 15:00:46      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:blog   end   pre   logs   ack   style   ext   ring   void   

 1 package 分页算法;
 2 
 3 import javax.swing.border.EmptyBorder;
 4 
 5 public class 分页版本1 {
 6     public static void main(String[] args) {
 7         算法(8, 15);
 8     }
 9 
10     public static void 算法(int CurPage, int endPage) {
11 
12         int index[] = new int[9];
13         if (endPage > 9) {
14             int nextPage;
15             if (CurPage <= 5) {
16                 for (int i = 1; i <= 5; i++)
17                     index[i - 1] = i;
18                 nextPage = 6;
19             } else {
20                 index[0] = 1;
21                 index[1] = 2;
22                 index[2] = -1;
23                 index[3] = CurPage - 1;
24                 index[4] = CurPage;
25                 nextPage = CurPage + 1;
26             }
27 
28             if (endPage - CurPage < 5) {
29                 int j = 5;
30                 for (int i = CurPage; i < endPage; i++, j++)
31                     index[j] = nextPage++;
32                 int offset = 4 - endPage + CurPage;// 偏移量
33 
34                 for (int ii = 0; ii < offset; ii++) {// 数组偏移
35                     for (int i = j; i > 2 + ii; i--) {
36                         index[i] = index[i - 1];
37                     }
38                     j++;
39                 }
40                 // 数组重构前段
41                 int label = (int) Math.ceil((double) offset / 2);
42                 for (int i = 0; i < label; i++) {
43                     index[2 + i] = 3 + i;
44                 }
45                 index[label + 2] = -1;
46                 for (int i = 8; i > label + 2; i--) {
47                     index[i] = endPage--;
48                 }
49 
50             } else {
51                 index[5] = nextPage;
52                 index[6] = -1;
53                 index[7] = endPage - 1;
54                 index[8] = endPage;
55             }
56         } else {
57             for (int i = 0; i < endPage; i++)
58                 index[i] = i + 1;
59         }
60         // 遍历数组
61         int end = endPage > 9 ? 9 : endPage;
62         for (int i = 0; i < end; i++) {
63             System.out.println(index[i]);
64         }
65     }
66 }

 

分页算法

标签:blog   end   pre   logs   ack   style   ext   ring   void   

原文地址:http://www.cnblogs.com/sylwh/p/7792892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!