欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)二維有序數(shù)組查找的方法

 更新時間:2016年04月27日 09:51:28   作者:阿涵-_-  
這篇文章主要介紹了Python實現(xiàn)二維有序數(shù)組查找的方法,結(jié)合實例形式分析了Python二維有序數(shù)組的查找思路及具體實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python實現(xiàn)二維有序數(shù)組查找的方法。分享給大家供大家參考,具體如下:

題目:在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。

這題目屬于比較簡單但又很不容易想到的,問了兩個同學(xué),大家一時都沒有想出來怎么解決比較快。第一反應(yīng)都是二分查找。對于每一行進行二分查找,然后查找過程可以把某些列排除掉,這是大家都能想到的基本的思路。

比較好的另一種思路是,首先選取數(shù)組右上角的數(shù)字,如果該數(shù)字等于要查找的數(shù)字,則查找結(jié)束;如果該數(shù)字大于要查找的數(shù)字,剔除這個數(shù)字所在的列,如果該數(shù)字小于要查找的數(shù)字,剔除這個數(shù)字所在的行。這樣每一步都可以剔除一行或一列,查找的速度比較快。

python實現(xiàn)的代碼:

# -*- coding:utf-8 -*-
'''
題目:在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。
請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
'''
def search(array, num):
  # 參數(shù)合法性判斷忽略
  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)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python3實現(xiàn)常見的排序算法(示例代碼)

    python3實現(xiàn)常見的排序算法(示例代碼)

    排序是非常常見的排序算法,今天給大家分享幾種比較常見的排序算法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • Python 如何安裝Selenium(推薦)

    Python 如何安裝Selenium(推薦)

    Selenium 是一個 Web的自動化測試工具 ,最初是為網(wǎng)站 自動化測試而開發(fā)的 , Selenium 可以直接調(diào)用瀏覽器 ,它支持所有主流的瀏覽器,本文給大家介紹Python 如何安裝Selenium,感興趣的朋友一起看看吧
    2021-05-05
  • python將MongoDB里的ObjectId轉(zhuǎn)換為時間戳的方法

    python將MongoDB里的ObjectId轉(zhuǎn)換為時間戳的方法

    這篇文章主要介紹了python將MongoDB里的ObjectId轉(zhuǎn)換為時間戳的方法,涉及Python操作MongoDB及字符串轉(zhuǎn)換的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python面向?qū)ο缶幊袒A(chǔ)實例分析

    Python面向?qū)ο缶幊袒A(chǔ)實例分析

    這篇文章主要介紹了Python面向?qū)ο缶幊袒A(chǔ),結(jié)合實例形式分析了Python面向?qū)ο缶幊填惖亩x、繼承、特殊方法及模塊相關(guān)原理與操作技巧,需要的朋友可以參考下
    2020-01-01
  • ChatGLM-6B+LangChain環(huán)境部署與使用實戰(zhàn)

    ChatGLM-6B+LangChain環(huán)境部署與使用實戰(zhàn)

    這篇文章主要介紹了ChatGLM-6B+LangChain環(huán)境部署與使用方法,結(jié)合實例形式詳細分析了ChatGLM-6B+LangChain環(huán)境部署相關(guān)步驟、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2023-07-07
  • Python django框架輸入漢字,數(shù)字,字符生成二維碼實現(xiàn)詳解

    Python django框架輸入漢字,數(shù)字,字符生成二維碼實現(xiàn)詳解

    這篇文章主要介紹了Python django框架輸入漢字,數(shù)字,字符轉(zhuǎn)成二維碼實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python使用matplotlib實現(xiàn)繪制自定義圖形功能示例

    Python使用matplotlib實現(xiàn)繪制自定義圖形功能示例

    這篇文章主要介紹了Python使用matplotlib實現(xiàn)繪制自定義圖形功能,結(jié)合實例形式分析了Python基于matplotlib模塊實現(xiàn)自定義圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Python中if elif else及縮進的使用簡述

    Python中if elif else及縮進的使用簡述

    這篇文章主要介紹了Python中if elif else及縮進的使用,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-05-05
  • 淺談python中的占位符

    淺談python中的占位符

    這篇文章主要介紹了淺談python中的占位符,分享了其簡單實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 詳解如何利用Numpy生成各種各樣的數(shù)組

    詳解如何利用Numpy生成各種各樣的數(shù)組

    Numpy提供了多種函數(shù)和方法,可以方便地生成不同形狀和類型的數(shù)組,今天小編就帶大家學(xué)習(xí)一下如何利用?Numpy?生成各種各樣的數(shù)組吧
    2023-07-07

最新評論