在一个排好序的数组里怎么最快的查找到里面的一个元素,如果存在这个元素返回1,不存在返回0
应该是先和中间一个比较,如果大于就再到比中间数大的那个1半里找比较快吧,程序怎么实现呢,谢谢写出程序,
上次面试遇到这个问题却没写出来,哎。
应该是先和中间一个比较,如果大于就再到比中间数大的那个1半里找比较快吧,程序怎么实现呢,谢谢写出程序,
上次面试遇到这个问题却没写出来,哎。
解决方案 »
- Process调用外部setup.exe进行安装,如何得知该程序安装成功了还是被终止了?
- 请教高手,.net访问数据库问题!!!急
- Xml 解析问题 急
- 递归方法的!
- 图像的渐变问题
- 急?动态绑定问题!!!!!!!!!!!!!!!!!
- chartControl制作饼状图百分比不能精确到小数后的问题!!!!?请高手指点啊!!!!!!
- c# 转 java
- 如何在页面中有button的情况下在repeater中实现回车换行效果
- 举手之劳可得50分,求一个Oracle的存储过程的例子,抛出异常,在.net中捕获异常,并alter
- Application["CONFIG.default_module"]??
- winForm中,不重新查询服务器的前提下,DataTable中如何实现计算列的更新?
假设数组为int[] a;
private bool Find(int NowPos, int LeftAmt, int FindItem)
{
if (LeftAmt <=1)
{
if (a[NowPos+LeftAmt] == FindItem)
{
return true;
}
return false;
}
if (a[NowPos] == FindItem)
{
return true;
}
else
{
LeftAmt -= LeftAmt / 2;
if (a[NowPos] < FindItem)
{
NowPos = NowPos + LeftAmt / 2;
}
else
{
NowPos = NowPos - LeftAmt / 2;
}
return Find(NowPos, LeftAmt, FindItem);
}
}
调用该方法的表达式为:
Find((a.Length - 1)/2, a.Length, 查找值);