zoukankan      html  css  js  c++  java
  • 浮点型二分法查找

    二分法查找据说真正能正确实现的,只有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;
            }

  • 相关阅读:
    EXISTS 的使用
    bind()和 unbind()绑定解绑事件的使用
    前端代码
    LIKE CONCAT 连用
    客服工作台
    杂录
    vue
    咋乱杂乱的一些总结
    kotlin 很杂很杂
    group by 和 order by 的区别 + 理解过程
  • 原文地址:https://www.cnblogs.com/fyhui/p/2129191.html
Copyright © 2011-2022 走看看