zoukankan      html  css  js  c++  java
  • 分页算法

     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 }

     js版:

     1 function    rotate(CurPage, endPage){
     2             var index = new Array();
     3             if(endPage > 9) {
     4                 var nextPage;
     5                 if( CurPage<= 5) {
     6                     for(var i = 1; i <= 5; i++) index[i - 1] = i;
     7                     nextPage = 6;
     8                 } else {
     9                     index[0] = 1;
    10                     index[1] = 2;
    11                     index[2] = -1;
    12                     index[3] = CurPage - 1;
    13                     index[4] = CurPage;
    14                     nextPage = CurPage + 1;
    15                 }
    16                 if(endPage - CurPage < 5) {
    17                     var j = 5;
    18                     for(var i = CurPage; i < endPage; i++, j++) index[j] = nextPage++;
    19                     var offset = 4 - endPage + CurPage; // 偏移量
    20                     for(var ii = 0; ii < offset; ii++) { // 数组偏移
    21                         for(var i = j; i > 2 + ii; i--) {
    22                             index[i] = index[i - 1];
    23                         }
    24                         j++;
    25                     }
    26                     // 数组重构前段
    27                     var label =  Math.ceil(offset / 2);
    28                     for(var i = 0; i < label; i++) {
    29                         index[2 + i] = 3 + i;
    30                     }
    31                     index[label + 2] = -1;
    32                     for(var i = 8; i > label + 2; i--) {
    33                         index[i] = endPage--;
    34                     }
    35                 } else {
    36                     index[5] = nextPage;
    37                     index[6] = -1;
    38                     index[7] = endPage - 1;
    39                     index[8] = endPage;
    40                 }
    41             } else {
    42                 for(var i = 0; i < endPage; i++) index[i] = i + 1;
    43             }
    44             // 遍历数组
    45             var end = endPage > 9 ? 9 : endPage;
    46             for(var i = 0; i < end; i++) {
    47                 console.info(index[i])
    48             }
    49         }
  • 相关阅读:
    Git操作命令2-在Git仓库里管理文件历史-分支操作
    mvvmlight框架搭建VS版本不同导致的问题
    wpf命令详解
    wpf触发器
    wpf控件模型
    wpf中Interaction.Behaviors详解
    wpf附加属性详解
    wpf依赖属性概述
    wpf体系结构
    MySql5.7下载安装配置教程
  • 原文地址:https://www.cnblogs.com/sylwh/p/7792892.html
Copyright © 2011-2022 走看看