浮点型二分法查找
来源:互联网 发布:剑三邪笑炮哥捏脸数据 编辑:程序博客网 时间:2024/05/01 08:04
二分法查找据说真正能正确实现的,只有10%的程序员。
本人最近需要用到在有序的浮点数列表中查找数据位置,没想到网络上居然没找到,只能自己写,写了两次才实现,这与整型二分法实现完全不一样,注意了。
private int GetPosition(double xVal, double[] data)
{
int start = 0, end = data.Length, mid;
// Array.Sort(data); //data是升序数组
if (end <= 0) return -1;
if (xVal < data[0] || xVal > data[end - 1]) return -1;
for (int i = start; i < end; i++)
{
mid = (start + end) / 2;
if (xVal < data[mid])
{
i = start; //可不要
end = mid;
}
else if (xVal > data[mid])
{
i = start; //可不要
start = mid;
}
else //浮点型,可能一直不会到这,但是为了防止很精度的数在内存表现形式一样
{
return mid;
}
}
if (end - start <= 1) //注意,这是退出点。只要不存在相等,最后肯定卡在两数中间
{
return end; //或return start,看需要
}
return -1;
}
- 浮点型二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- a:hover 伪类
- poj 2136
- 得到blackberry中的联系人信息(j2me)
- Android PreferenceActivity 学习笔记
- Android的图片浏览源码解读
- 浮点型二分法查找
- 敢不敢? 哇 玩这么大 七夕那天第一个给你私信的朋友跟ta扮演一天情侣好吗?
- Class.getResource与ClassLoader.getResource()区别
- QTP调用win32 API 实现窗口的最小最大化
- ANT-build.xml文件详解
- Android 设置 Toast 的显示位置
- spring 2.5+junit4.4 测试基础配置
- 三个为Google+服务的网站
- C++ 容器类与Qt容器类对比 (2)连续容器类