返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现二维有序数组查找的方法
  • 840
分享到

Python实现二维有序数组查找的方法

数组方法Python 2022-06-04 19:06:41 840人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例讲述了python实现二维有序数组查找的方法。分享给大家供大家参考,具体如下: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这

本文实例讲述了python实现二维有序数组查找的方法。分享给大家供大家参考,具体如下:

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

这题目属于比较简单但又很不容易想到的,问了两个同学,大家一时都没有想出来怎么解决比较快。第一反应都是二分查找。对于每一行进行二分查找,然后查找过程可以把某些列排除掉,这是大家都能想到的基本的思路。

比较好的另一种思路是,首先选取数组右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,剔除这个数字所在的列,如果该数字小于要查找的数字,剔除这个数字所在的行。这样每一步都可以剔除一行或一列,查找的速度比较快。

Python实现的代码:


# -*- coding:utf-8 -*-
'''
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
'''
def search(array, num):
  # 参数合法性判断忽略
  i = 0
  j = len(array[0]) - 1
  max_i = len(array) - 1
  while i <= max_i and j >= 0:
    if array[i][j] == num:
      return True
    elif array[i][j] > num:
      j = j - 1
    else:
      i = i + 1
  return False
if __name__ == '__main__':
  a = [[1, 2, 8, 9],
     [2, 4, 9, 12],
     [4, 7, 10, 13],
     [6, 8, 11, 15],
     ]
  print search(a, 14)
  print search(a, 7)
  print search(a, 0)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

--结束END--

本文标题: Python实现二维有序数组查找的方法

本文链接: https://lsjlt.com/news/14986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现二维有序数组查找的方法
    本文实例讲述了Python实现二维有序数组查找的方法。分享给大家供大家参考,具体如下: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这...
    99+
    2022-06-04
    数组 方法 Python
  • PHP二维数组排序的 方法
    关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP直接来对数组进行排序,而在PHP里存储数据用到最多的就是对象和数组,但处...
    99+
    2023-09-01
    php 开发语言 数据库
  • python定义二维数组的方法有哪些
    在Python中,可以使用以下几种方法来定义二维数组:1. 使用嵌套列表:可以使用一个列表的列表来表示一个二维数组。每个内部列表代表...
    99+
    2023-08-19
    python
  • python打印二维数组的方法有哪些
    在Python中,可以使用以下方法来打印二维数组:1. 使用for循环嵌套遍历数组的每个元素,并打印出来。```pythonarr ...
    99+
    2023-08-22
    python
  • python二维数组按列排序怎么实现
    要对二维数组按列进行排序,可以使用Python的内置排序函数sorted()和lambda函数。 首先,使用lambda函数指定按照...
    99+
    2023-10-27
    python
  • python二分查找算法的递归实现方法
    本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = ...
    99+
    2022-06-04
    递归 算法 方法
  • JAVA——二维数组遍历二维数组的三种方法
    目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇...
    99+
    2023-09-22
    java 开发语言
  • Python基于二分查找实现求整数平方根的方法
    本文实例讲述了Python基于二分查找实现求整数平方根的方法。分享给大家供大家参考,具体如下: x=int(raw_input('please input a int:')) if x<0: ...
    99+
    2022-06-04
    平方根 整数 方法
  • php如何实现二维数组排序
    在php中,可以使用array_multisort()函数实现二维数组排序。该函数可以对多个数组或多维数组进行排序,语法“array_multisort(二维数组,排列顺序,排序类型)”;当第二个参数省略或设置为“SORT_ASC”则升序排...
    99+
    2024-04-02
  • java实现二维数组转置的方法示例
    本文实例讲述了java实现二维数组转置的方法。分享给大家供大家参考,具体如下:这里在文件中创建Test2、Exchange、Out三个类在Exchange类中编写exchange()方法,在方法中创建两个数组arraryA、arraryB,...
    99+
    2023-05-31
    java 二维数组 ava
  • Python语言实现二分法查找
    前言: 二分法也就是二分查找,它是一种效率较高的查找方法 假如公司新来了一个人,叫张三,他是你们公司第47个人,过了一段时间后,有些人呢看张三不爽,离职了,那这时候张三肯定不是公司第...
    99+
    2024-04-02
  • java二维数组排序的方法是什么
    Java中可以使用Arrays类的sort方法对二维数组进行排序。具体步骤如下:1. 导入java.util.Arrays类。```...
    99+
    2023-10-10
    java
  • php二维数组排序的方法是什么
    在PHP中,可以使用以下方法对二维数组进行排序:1. 使用array_multisort()函数:该函数可以对多个数组或多维数组进行...
    99+
    2023-08-19
    php
  • php三维数组转为二维数组的方法
    这篇文章主要介绍了php三维数组转为二维数组的方法,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。php三维数组转为二维数组的方法:1、通过“foreach ($result as $key =>$v){...}”方...
    99+
    2023-06-15
  • python两个一维数组合成二维数组的方法是什么
    在Python中,可以使用zip()函数将两个一维数组合并成一个二维数组。zip()函数接受任意数量的可迭代对象作为参数,并返回一个...
    99+
    2023-09-06
    python
  • python如何实现二维数组转换
    这篇文章主要为大家展示了“python如何实现二维数组转换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现二维数组转换”这篇文章吧。二维数组转...
    99+
    2024-04-02
  • python怎么实现二维数组转置
    要实现二维数组的转置,可以使用嵌套的循环来交换数组中的元素位置。下面是一个示例:```pythondef transpose(mat...
    99+
    2023-08-18
    python
  • Java二叉搜索树与数组查找的方法
    本篇内容介绍了“Java二叉搜索树与数组查找的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目一 解法class ...
    99+
    2023-06-29
  • Java技巧函数方法实现二维数组遍历
    目录前言1. 函数方法消减代码层级2. 遍历中return支持前言 对于数组遍历,基本上每个开发者都写过,遍历本身没什么好说的,但是当我们在遍历的过程中,有一些复杂的业务逻辑时,将会...
    99+
    2022-11-13
    Java函数方法 Java二维数组遍历
  • python二维数组声明的方法是什么
    在Python中,可以使用列表(list)的列表来表示二维数组。可以通过以下两种方法来声明一个二维数组: 使用嵌套列表的形式: ...
    99+
    2023-10-26
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作