插值查找的公式是:mid = low + (high - low)*(k - arr[low]) / (arr[high] - arr[low])。这时我就有几个疑惑了:
第一:
(k - arr[low]) / (arr[high] - arr[low])是两个int类型的数相除,得出来的的结果不几乎都是0么,哪来的比例?
第二:
(arr[high] - arr[low]),万一arr[high] 与arr[low]相等,那结果岂不是0,那不就变成了除以0这样的错误了么。
以上的疑问都是我调试的时候发现的问题,是我理解错了,还是这个算法本身就不给力,望各位大佬指点
第一:
(k - arr[low]) / (arr[high] - arr[low])是两个int类型的数相除,得出来的的结果不几乎都是0么,哪来的比例?
第二:
(arr[high] - arr[low]),万一arr[high] 与arr[low]相等,那结果岂不是0,那不就变成了除以0这样的错误了么。
以上的疑问都是我调试的时候发现的问题,是我理解错了,还是这个算法本身就不给力,望各位大佬指点
点a和点b,只要点a不等于点b,哪怕就是一根平行于x轴 或平行于y轴的都没关系
斜率为0有关系么,(1,0)(3,0)不能插(2,0)么