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());
}
}
闽公网安备 35060202000074号