国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 17:30:45
字體:
供稿:網(wǎng)友
這篇文章主要介紹了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 Falseif __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)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 慈利县| 鄯善县| 绿春县| 青浦区| 朝阳县| 孟州市| 二连浩特市| 新密市| 蓝田县| 福泉市| 澄江县| 潮州市| 肥西县| 高邑县| 贵州省| 平武县| 栾川县| 万全县| 玛曲县| 平和县| 温泉县| 溆浦县| 鄂托克旗| 永昌县| 吉林市| 宾阳县| 彭阳县| 满洲里市| 东台市| 武宁县| 孝昌县| 崇左市| 玉屏| 河西区| 彰化县| 都兰县| 淮滨县| 乌兰察布市| 长宁区| 鄂温| 凤凰县|