字节跳动 Python入门到实战 微信小程序 WorldCloud ssm validation xaml unicode shiny vue源码下载 less用法 bootstrap图表 matlab中log函数 linux 获取系统时间 如何升级python python的array python编程语言 java编程入门 java基础教学 java中的正则表达式 java自定义异常 java数组 java命令 java中scanner用法 java的多线程 怎么安装linux 远程登录linux java游戏开发教程 html实例教程 java项目下载 wps2011 雪地求生 microkms java程序设计基础 51脚本 丁丁下载 python游戏代码 图片批量处理工具 音乐剪辑器下载 2k14生涯模式修改器
当前位置: 首页 > 学习教程  > 编程语言

插值查找的问题

2020/7/24 9:20:54 文章标签:

对于插值查找的效率很高,但是我发现一个问题,就是在不连续的情况下,找 arr【0】arr【1】之间的数时应该是返回-1,但是出现了堆栈溢出异常
以下是代码

	public static void main(String[] args) {

        int[] arr = new int[]{46, 59, 67, 71, 82, 95};

        int i = insertValue(arr, 0, arr.length - 1, 50);
        System.out.println(i);
    }

    public static int insertValue(int[] arr, int left, int right, int value) {
        if (left > right || value < arr[0] || value > arr[arr.length - 1]) {z
            return -1;
        }
        int mid = left + (right - left) * (value - arr[left]) / (arr[right] - arr[left]);
        int midValue = arr[mid];
        if (value > midValue) {
            return insertValue(arr, mid + 1, right, value);
        }else if (value < midValue) {
            return insertValue(arr, left, mid - 1, value);
        }else {
            return mid;
        }
    }

他在找50的时候,mid直接是1,而后直接进入了死递归


本文链接: http://www.dtmao.cc/news_show_50045.shtml

附件下载

上一篇:动态添加数组

下一篇:RFFE接口简介

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?