当前位置:   article > 正文

Python算法——如何在有规律的二维数组中进行高效数据查找_python二维数组中找数

python二维数组中找数

要求:

       二维数组每一行按照从左到右递增顺序排列,每一列按照从上到下顺序排列。实现一个函数,输入一个整数判断数组中是否含有该整数。

分析:

       最简单的方法就是对二维数组进行顺序遍历,然后判断待查找元素是否在数组中,这种时间复杂度为O(M*N),M,N分别为二维数组行数和列数。

但顺序遍历不是最好的方法,当数组有序的时候,二分查找是一个很好的方法,具体思路如下:给定数组array(行数:rows,列数:columns,待查找元素:data),首先遍历数组右上角元素(i=0,j=columns-1),如果array[i][j]==data,则在二维数组中找到了data,直接返回;如果array[i][j]>data,则说明这一列其他元素也一定大于data,因此,通过 j- 操作排除这一列。同理,如果array[i][j]<data,则说明这一行中其他数字一定比data小,因此,通过 i+ 操作排除这一行。依次类推,直到遍历完数组结束。

代码实现:

  1. # -*- coding:utf-8 -*-
  2. def findWithBinary(array,data):
  3. if array == None:
  4. return False
  5. #从二维数组右上角元素开始遍历
  6. i = 0
  7. rows = len(array)
  8. columns = len(array[0])
  9. j = column
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/357252
推荐阅读
相关标签
  

闽ICP备14008679号