杨氏矩阵查找

在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维
数组和一个整数,判断数组中是否含有该整数。
使用Step-wise线性搜索。
```python
def get_value(l, r, c):
return l[r][c]
def find(l, x):
m = len(l) - 1
n = len(l[0]) - 1
r = 0
c = n
while c >= 0 and r <= m:
value = get_value(l, r, c)
if value == x:
return True
elif value > x:
c = c - 1
elif value < x:
r = r + 1
return False
```
例如:

pds=pd.DataFrame([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]]) print(pds) # print(len(pds.index)) # print(len(pds.columns)) #找24 def get_value(pds,c,i): return pds[c][i] # def find(n,pds): # c=len(pds.columns)-1 # i=len(pds.index)-1 # cc=0 # ii=i # while ii>=0 and cc<=c: # if n==get_value(pds,cc,ii): # return True # if n<get_value(pds,cc,ii): # ii-=1 # if n>get_value(pds,cc,ii): # cc+=1 def find(n,pds): c=len(pds.columns)-1 i=len(pds.index)-1 cc=c ii=0 while ii<=i and cc>=0: if n==get_value(pds,cc,ii): return True if n<get_value(pds,cc,ii): cc-=1 if n>get_value(pds,cc,ii): ii+=1 print(find(24,pds))

 

转载于:https://www.cnblogs.com/chedanlangren/p/7436721.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值