关闭

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

标签: 二维数组查找
43人阅读 评论(0) 收藏 举报
分类:

</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;

}




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

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




  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:237次
    • 积分:40
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档