JavaScript中二维数组的查找(代码示例)

本篇文章给大家带来的内容是关于javascript中二维数组的查找(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

基本思路

二维数组是有序的,比如下面的数据:

1 2 34 5 67 8 9

登录后复制

可以直接利用左下角数字开始查找:

立即学习“Java免费学习笔记(深入)”;

大于:比较上移

小于:比较右移

代码思路

将二维数组看作平面坐标系

从左下角(0,arr.length-1)开始比较:

目标值大于坐标值—x坐标+1

目标值小于坐标值—y坐标-1

注意:

二维数组arri中

j代表x坐标

i代表y坐标

代码

    function Find(target, array) {      let i = array.length - 1; // y坐标      let j = 0; // x坐标      return compare(target, array, i, j);    }    function compare(target, array, i, j) {      if (array[i] === undefined || array[i][j] === undefined) {        return false;      }      const temp = array[i][j];      if (target === temp) {        return true;      }      else if (target > temp) {        return compare(target, array, i, j+1);      }      else if (target < temp) {        return compare(target, array, i-1, j);      }    }

登录后复制

拓展:二分查找

二分查找的条件是必须有序。

和线性表的中点值进行比较,如果小就继续在小的序列中查找,如此递归直到找到相同的值。

    function binarySearch(data, arr, start, end) {        if (start > end) {            return -1;        }        var mid = Math.floor((end + start) / 2);        if (data == arr[mid]) {            return mid;        } else if (data < arr[mid]) {            return binarySearch(data, arr, start, mid - 1);        } else {            return binarySearch(data, arr, mid + 1, end);        }    }

登录后复制

以上就是JavaScript中二维数组的查找(代码示例)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2734787.html

(0)
上一篇 2025年3月8日 01:09:15
下一篇 2025年3月8日 01:09:22

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论