二维“有序”数组查找问题

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否包含了该整数。

:下面的二维数组就是每行、每列都按递增排序。如果在这个数组中查找数字6,则返回true(找得到);如果查找数字5,由于数组不含该数字,则返回false。

1 2 8 9
2 4 9 12
4 7 10 13
6 8 11

15

 

 

 

 

 

代码

 1 #include"stdio.h"
 2 int func();
 3 int a[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
 4 int m,n;
 5 int num = 12;
 6 int main()
 7 {
 8     if(func())
 9         printf("true");
10     else
11         printf("false");
12     return 0;
13 }
14 int func()
15 {
16     int i,j;
17     i = 0;j = 3;
18     while(i <=3 && j >= 0)
19     {
20         if(a[i][j] == num)
21             return 1;
22         else if(a[i][j] > num)
23             j--;
24         else
25             i++;
26     }
27     return 0;
28 }

 

posted @ 2017-10-25 12:44  __迷途的羔羊  阅读(250)  评论(0编辑  收藏  举报