Python實現(xiàn)二維有序數(shù)組查找的方法
本文實例講述了Python實現(xiàn)二維有序數(shù)組查找的方法。分享給大家供大家參考,具體如下:
題目:在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
這題目屬于比較簡單但又很不容易想到的,問了兩個同學,大家一時都沒有想出來怎么解決比較快。第一反應(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è)計有所幫助。
- Python實現(xiàn)二分查找算法實例
- python二分查找算法的遞歸實現(xiàn)方法
- Python二分查找詳解
- Python實現(xiàn)二分查找與bisect模塊詳解
- Python基于二分查找實現(xiàn)求整數(shù)平方根的方法
- 簡介二分查找算法與相關(guān)的Python實現(xiàn)示例
- python實現(xiàn)二分查找算法
- python 二分查找和快速排序?qū)嵗斀?/a>
- Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例
- Python實現(xiàn)在某個數(shù)組中查找一個值的算法示例
- Python查找數(shù)組中數(shù)值和下標相等的元素示例【二分查找】
相關(guān)文章
Django 中自定義 Admin 樣式與功能的實現(xiàn)方法
這篇文章主要介紹了Django 中自定義 Admin 樣式與功能的實現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
python中SSH遠程登錄設(shè)備的實現(xiàn)方法
本文主要介紹了python中SSH遠程登錄設(shè)備,python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本文主要介紹了netmiko模塊,具有一定的參考價值,感興趣的可以了解一下2022-04-04
如何利用python將Xmind用例轉(zhuǎn)為Excel用例
這篇文章主要介紹了如何利用python將Xmind用例轉(zhuǎn)為Excel用例,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法
今天小編就為大家分享一篇python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
如何基于Python實現(xiàn)一個慶祝國慶節(jié)的小程序
這篇文章主要介紹了如何基于Python實現(xiàn)一個慶祝國慶節(jié)的小程序,增加了互動選擇祝福語、查詢信息、播放背景音樂及趣味小測驗等功能,使用tkinter增強GUI,提升用戶互動體驗,需要的朋友可以參考下2024-09-09

