• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python实现二维有序数组查找的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python定义二维数组,python 数组,python 二维数组,python 数组长度,python 数组操作等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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)

</div>

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

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

</div>

您可能想查找下面的文章:

  • Python自定义类的数组排序实现代码
  • Python实现二维有序数组查找的方法
  • Python实现二维有序数组查找的方法
  • python读取TXT到数组及列表去重后按原来顺序排序的方法
  • python实现合并两个数组的方法
  • 一些Python中的二维数组的操作方法
  • 一些Python中的二维数组的操作方法
  • python常规方法实现数组的全排列
  • python回溯法实现数组全排列输出实例分析
  • python常规方法实现数组的全排列

相关文章

  • python中执行shell的两种方法总结
  • python3序列化与反序列化用法实例
  • Using Django with GAE Python 后台抓取多个网站的页面全文
  • 简明 Python 基础学习教程
  • python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
  • 浅析python中SQLAlchemy排序的一个坑
  • 详解Django框架中的视图级缓存
  • Python异常处理总结
  • Python实现partial改变方法默认参数
  • python3访问sina首页中文的处理方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python Deque 模块使用详解
    • 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
    • Pycharm学习教程(3) 代码运行调试
    • 教你如何在Django 1.6中正确使用 Signal
    • 分析用Python脚本关闭文件操作的机制
    • Python安装使用命令行交互模块pexpect的基础教程
    • 在Python的框架中为MySQL实现restful接口的教程
    • 采用python实现简单QQ单用户机器人的方法
    • 用Python将IP地址在整型和字符串之间轻松转换
    • 简单介绍Python2.x版本中的cmp()方法的使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有