zoukankan      html  css  js  c++  java
  • 依据记录总数和每页大小取页数(转)

    依据记录总数和每页大小取页数
    例如:总记录数为totalrow,每页显示数为pagesize,现在要求总页数totalpage
    1 常用方法:整除,判断余数,余数大于0,整除结果加1。

    if(totalrow%pagesize==0)
       totalpage=totalrow/pagesize;
    else
       totalpage=totalrow/pagesize+1;

     这种计算方法,会导致程序先取余数,再比较是否有余数,再进行整除操作,然后再进行相加操作
    2 今天无意间发现还有另外一种计算方式(以前没怎么多想)

    totalpage=(totalrow+(pagesize-1))/pagesize

       由于余数最小为1,那么先加上最大的余数(pagesize-1)后,只要totalrow/pagesize余数不为0,(totalpage+(pagesize-1))/pagesize的结果一定会比totalrow/pagesize大1;否则结果相等;此计算公式结果和方法1中结果一致,但是写法简单,无需bool判断,而且整  除或者取余数操作只进行了一步,相对来讲效率有所提升,效率比较代码

    long t1=System.currentTimeMillis();
        for(int i=0;i<10000;i++){
            int totalrow=(int)(Math.random()*10000000.00);
            int pagesize=50;
            if(totalrow%pagesize==0){
                System.out.println(totalrow/pagesize);
            }else{
                System.out.println(totalrow/pagesize+1);
            }
        }
     
        long t2=System.currentTimeMillis();
     
        for(int i=0;i<10000;i++){
            int totalrow=(int)(Math.random()*10000000.00);
            int pagesize=50;
            System.out.println((totalrow+(pagesize-1))/pagesize);
        }
     
        long t3=System.currentTimeMillis();
        
        System.out.println("时间间隔:方法一耗时["+(t2-t1)+"]ms	方法二耗时["+(t3-t2)+"]ms");

    连续执行4次,执行结果:
    时间间隔:方法一耗时[277]ms 方法二耗时[223]ms
    时间间隔:方法一耗时[281]ms 方法二耗时[256]ms
    时间间隔:方法一耗时[335]ms 方法二耗时[248]ms
    时间间隔:方法一耗时[281]ms 方法二耗时[215]ms

    转自https://blog.csdn.net/lansetiankong12/article/details/51131976

  • 相关阅读:
    Two Sum II
    Subarray Sum
    Intersection of Two Arrays
    Reorder List
    Convert Sorted List to Binary Search Tree
    Remove Duplicates from Sorted List II
    Partition List
    Linked List Cycle II
    Sort List
    struts2结果跳转和参数获取
  • 原文地址:https://www.cnblogs.com/shenyixin/p/9407269.html
Copyright © 2011-2022 走看看