刷题之路之二维数组查找数据

</pre><p></p><pre name="code" class="cpp">

给定一个二维数组,每行递增,每列递增。

4    5    6       8 

7     8     9       10 

9   12   15    17

12 13  16   20


如 二维数组,随机给出的一个二维数组。


代码如下   

  

 boolen search(int *data,int rows,int columns,int number)

{    

        boolen find=flase;

if(data==NULL||cows<=0||colmuns<=0)

return flase

     int row=0;

      int colmun=colmun-1;

while(row<rows&&colmun>=0)

{

if(data[row*colmuns+colmun==number){   break;)

               else if (data[row*colmuns+colmun>number)

  colmun--;

               else

                           row++:

}


return find;

}




           每次比较矩阵最右边的数字,因为该数字较特殊,为该行的最大值,该列的最小值。每次每次循环通过比较待查的数,可以缩小矩阵的查找范围。

      注意,二维数组中值定位运算。




  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值