首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

C# Asp.Net数字分页控件,时间复杂度O(n/2),该如何处理

2012-04-06 
C# Asp.Net数字分页控件,时间复杂度O(n/2)效果图:主要技术点是找到要显示的最大页索引和最小页索引。这里用

C# Asp.Net数字分页控件,时间复杂度O(n/2)

效果图:
主要技术点是找到要显示的最大页索引和最小页索引。这里用的是查找法,即从当前索引pageIndex开始,分别向前和向后找,一直找个够showPages个或不能再找下去。代码:

C# code
        //找出要显示的最大索引和最小索引             int maxIndex=pageIndex;             int minIndex=pageIndex;             showPages--;                //去掉当前页             bool noOper;             while (showPages > 0)             {                 noOper = true;                 if (maxIndex + 1 < pageCount && showPages > 0)  //向前找一页                 {                     maxIndex++;                     showPages--;                     noOper = false;                 }                 if (minIndex - 1 >= 0 && showPages > 0)    //向后找一页                 {                     minIndex--;                     showPages--;                     noOper = false;                 }                 if (noOper)                        //没有查找,说明showPages>总页数                     break;             }    

就时间复杂度来说,最好的时候是O(n/2),最坏的时候是O(n-1);
我总感觉能有数学的方法来找出最大和最小页索引,请高手指点。这有点像求1到100的和,有人用for循环从1加到100,而聪明的人用等差公式,一下子就出来。
有源码,下载地址:http://download.csdn.net/source/2557429

[解决办法]
顶下~
[解决办法]
一般不都是折半查找的嘛

热点排行