快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

java版本的二分法算法实现

class ErFenFa
{
int[] iArray={1,5,9,14,27,39,41,50,62,222,345,612,981,1207,8721}; //在此数字序列中寻找
int iSeek=345; //寻找345的位置
int iCount=0; //比较的次数

public int xunhuan()
//普通的循环法,最少需要比较一次,比如查找1,最多需要比较15次,比如8721
{
for(int i=0;i<iArray.length;i++)
{
iCount++;
if (iSeek==iArray[i])
break;
}
return iCount;
}

public int erfen()
//二分法查找
{
int iIndex=0; //相称于指针的东西
int iStart=0; //
int iEnd=iArray.length-1;
while(true)
{
iCount++;
iIndex = (iStart+iEnd)/2;
if(iArray[iIndex]<iSeek)
{
iStart = iIndex;
}
else if(iArray[iIndex]>iSeek)
{
iEnd = iIndex;
}
else
{
break;
}
}
return iCount;
}

public static void main(String[] args)
{
ErFenFa eff=new ErFenFa();
ErFenFa eff1=new ErFenFa();
System.out.println("普通的循环查找,需要比较的次数:"+eff.xunhuan());
System.out.println("二分法查找,需要比较的次数:"+eff1.erfen());
}
}






返回类别: 教程
上一教程: “给你第二次机会”??小议PushbackInputStream
下一教程: Java简朴类型进行精确浮点数运算

您可以阅读与"java版本的二分法算法实现"相关的教程:
· java版本的冒泡算法
· 用JAVA转变简繁体的基础知识 (不用对照表,用算法实现)
· bug? Hbm2JavaTask无法实现joined-subclass单独配置文件(2.1.2)
· 用java实现人工智能中的A*算法求8数码问题
· java实现的18位身份证格式验证算法
    微笑服务 优质保证 索取样品