`

仿goolge分页算法

阅读更多

下面我们来以最大页数显示6页,开始只显示3页来分析Google分页
当前页小于4时
在页数大于6时       没啥好说的
开始显示
1 2 3      当前页是1      
1 2 3 4         当前页是2       
1 2 3 4 5   当前页是3       
1 2 3 4 5 6 当前页是4  

小于四中另一种情况 总页数小于当前面的最大索引值
如:总页数是2 ,本页的最大索引值是3
那么应该显示
1 2 

当前页大于4时
当大于4时 总页数够大 没啥好说的
2 3 4 5 6 7         当前页是5        起始值是2    未页 7
3 4 5 6 7 8         当前页是6        起始值是3    未页 8
4 5 6 7 8 9         当前页是7        起始值是4    未页 9
5 6 7 8 9 10        当前页是8        起始值是5    未页 10

大于四的第二种情况
最后一页的索引值大于记录总页数并且大于这一页要显示的最大索引值
最后一页的索引值=总记录数
这页的开始索引值=这页的总记录数-5

大于四的第三种情况
最后一页的索引值小于这一页要显示的最大索引值,这种情况中存在这个区期
google页面中最大显示页/2+1    到   google页面中最大显示页-1 之间
              这页的开始索引值 = 1
     这页的结束索引值 = 总记录的面数

整合后的代码如下:

privateintnowpage;// 当前页
    privateintcountrecord;// 总记录数
    privateintcountpage;// 总页数
    privateintpageindex;// 当前页记录开始的位置 (nowpage-1)*PAGESIZE
    publicstaticfinalintPAGESIZE = 5;// 每页显示的记录数
    privateintsumindex = 6;//索引的sum值代表的是 google页面中最大显示页数
    privateintstartindex;// 开始的索引值
    privateintendindex;// 结束的索引值

// 计算索引位置
       if (this.nowpage <= 4) {//当前页小于第四页
   
this.startindex = 1;
           this.endindex = this.nowpage + 2;
//但是第一页显示的页数(endindex)大于了总记录数实际有的页数
           if(this.endindex>this.countpage){           
                this.endindex=this.countpage;
           }
          
       }elseif(this.nowpage>4){ //当前面大于第四页
           this.startindex=this.nowpage-3;
           this.endindex=this.nowpage+2;
//最后一页的索引值大于记录总页数并且大于这一页要显示的最大索引值
if(this.endindex>this.countpage && this.endindex > this.sumindex){
              this.endindex=this.countpage;
              this.startindex=this.countpage-5;
           }
//最后一页的索引值小于这一页要显示的最大索引值,这种情况中存在这个区期//sumindex/2+1 到 sumindex-1 之间
           if(this.endindex < this.sumindex){
              this.startindex = 1;
              this.endindex = this.countpage;
           }
       }

 

本文原地址:http://student.csdn.net/space.php?uid=1038661&do=blog&id=56378

分享到:
评论

相关推荐

    JSP实现类似百度,google的分页

    在这个主题中,我们将深入探讨如何使用Java Server Pages(JSP)技术来实现类似百度或Google的高效、美观的分页功能。这通常涉及到与后端Servlet的交互,以获取并展示所需的数据。 首先,我们需要了解JSP的基本原理...

    google分页

    Google分页基于服务器端的分页算法,它根据查询关键字和相关性计算出搜索结果的排序。然后,这些结果被分组到不同的页面中。在客户端,当用户点击分页链接时,浏览器会发送一个新的请求,包含当前页码信息,服务器...

    仿谷歌电子市场Demo.rar

    《仿谷歌电子市场Demo——深度解析与学习指南》 谷歌电子市场,又称Google Play,是全球范围内最受欢迎的应用商店之一,提供了海量的应用程序、游戏、音乐、电影和其他数字内容。本篇文章将围绕“仿谷歌电子市场...

    一个分页page技术

    描述中提到“考的别人的,仿google 分页”,这暗示我们将探讨一种模仿Google分页设计的实现方法,可能涉及到一些关键的UI元素和交互逻辑。Google的分页通常具有简洁的设计,包括前进、后退按钮,以及显示当前页码和...

    php google或baidu分页代码

    4. **分页算法**:`arithmetic()`方法是实现分页逻辑的关键。它首先根据当前页和每页记录数计算总页数,然后处理边界情况,如用户请求的页码超出范围,会自动跳转到最后一页。此外,它还计算出上一页和下一页的值,...

    完全仿谷歌搜索 显示信息条数

    本文将详细解析"完全仿谷歌搜索 显示信息条数"这一主题,涵盖智能提示、自动回传、谷歌搜索效果的实现、AJAX技术的应用,以及如何在搜索结果中显示数据总数。 首先,我们要理解智能提示(Auto-suggestion)是提高...

    仿google自动补全

    【仿谷歌自动补全】是一种常见的前端开发技术,主要用于提高用户在输入框中搜索或填写信息时的效率和用户体验。谷歌自动补全功能是通过分析用户的输入,预测并显示可能的搜索词,使得用户可以快速选择合适的选项,而...

    仿谷歌百度实现输入自动补全功能

    总的来说,仿谷歌百度实现输入自动补全功能是一个涉及前端、后端以及算法设计的综合性项目。通过这个项目,你可以深入理解Web交互设计,提升JavaScript编程能力,并掌握如何构建高效的API接口。同时,这也是一个很好...

    请求分页存储管理系统设计与实现可课程设计.doc

    "请求分页存储管理系统设计与实现可课程设计" 课程设计的主要目的是为了加深学生对整个课程的知识体系的理解,通过模拟操作系统原理的实现,使学生能更深刻地领会操作系统工作原理和理解操作系统的实现方法。同时,...

    仿google搜索效果

    3. **索引构建**:Google的核心技术之一是其高效的PageRank算法和倒排索引。倒排索引是一种快速查找包含特定关键词的文档的数据结构。在Python中,可以使用Whoosh或Elasticsearch等库来构建和查询索引。 4. **...

    ACCESS数据库大数据量分页的几种方法比较及测试结果分析

    笔者随便通过“大数据量分页效率”,“access 分页”等关键词分别百度和谷歌了一下,发现有此疑问的大有人在。很多网页上也给出了不同的解决办法。那么,这些方法到底能达到优化效率,提高速度的目的吗? 下面我们...

    谷歌市场源码

    这通常涉及到数据库操作(SQLite或网络数据库),以及对数据进行过滤、排序和分页的算法。 3. **网络通信**:为了获取和更新应用程序信息,源码会包含网络请求的实现,可能是使用了Retrofit、Volley或者OkHttp等...

    ASP.NET-[其他类别]仿Google查询并导出Excel源码.zip

    这个压缩包"ASP.NET-[其他类别]仿Google查询并导出Excel源码.zip"包含了一个示例项目,其核心功能是模仿Google的搜索功能,并能够将搜索结果导出为Excel文件。 1. **搜索引擎模拟**: - ASP.NET MVC或Web Forms:...

    Google搜索技术解析 页面排序技术展示

    ### Google搜索技术解析:PageRank算法详解 #### 一、引言 随着互联网的迅猛发展,搜索引擎成为了人们获取信息的主要工具之一。Google作为全球最大的搜索引擎,其核心算法——PageRank,一直是研究者们关注的焦点...

    kata_ruby:在 Ruby 中执行的一些代码 kata

    【标题】: "Ruby编程语言中的Kata实践与FizzBuzz及谷歌分页算法" 【正文】 Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在这个名为"kata_ruby"的项目中,我们将...

    Google 系统设计真题 20201

    总的来说,Google系统设计面试题目的解答不仅需要扎实的计算机科学基础,还需要对实际系统架构的深入理解,以及灵活应用各种算法和技术解决实际问题的能力。通过这样的面试,候选人能够展示他们在复杂问题上的思考...

    模拟GOOGLE搜索

    4. **爬虫策略**:Google搜索结果页面可能包含分页,我们需要处理这些分页以获取更多结果。此外,还需要处理AJAX请求,因为它们可能加载额外的数据。 5. **数据解析**:获取到HTML响应后,我们需要解析HTML,提取...

    2013谷歌笔试题

    谷歌可能会要求你编写代码来解决实际问题,例如优化算法效率或设计复杂的数据结构。 其次,**计算机网络**的知识也是谷歌笔试题的常客。这包括TCP/IP协议栈、HTTP协议、网络安全、网络延迟分析以及网络传输效率的...

    谷歌拼音库PinyinIme

    对于拼音处理和自然语言处理的部分,开发者可能需要具备一定的算法和数据结构知识,例如动态规划、哈希表和Trie树等。 在实际应用中,除了将PinyinIme作为独立输入法使用外,还可以将其嵌入到其他项目中,如网页...

Global site tag (gtag.js) - Google Analytics