码迷,mamicode.com
首页 > 编程语言 > 详细

Pro3 二维数组中的查找

时间:2015-04-05 20:16:13      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

剑指offer面试题三:

技术分享

 

关键在于这个二维数组比较特殊,都是按照排序后的摆放,因而在查找时可以采取从右上角开始一层层的剥离,节省查找时间

代码如下:

 1 #include<stdio.h>
 2 #define True 1
 3 #define False 0
 4 /**
 5 *二维数组找到
 6 */
 7 int Findnum(int *matrix,int rows,int colums,int findnum){
 8     int findflag = False;
 9         if(matrix!=NULL && rows>0 && colums>0){
10             //俩个辅助变量
11             int row = 0;
12             int colum = colums-1;
13             //开始找数字的循环
14             while(row<rows && colum>=0){
15                 if(matrix[row*colums+colum] == findnum){
16                     findflag = True;
17                     break;
18                 }
19                 else  if(matrix[row*colums+colum] > findnum)
20                         colum--;
21                 else
22                         row++;
23             }
24         }
25     return findflag;
26 }
27 void  main(void){
28     int num[][4] = {{1, 2, 8, 9}, {2, 4, 9, 12}, {4, 7, 10, 13}, {6, 8, 11, 15}};
29     int flag;
30     flag = Findnum((int*)num,4,4,15);
31     if(flag){
32         printf("Find");
33     }
34     else
35         printf("Not Find");
36 
37 }

 

Pro3 二维数组中的查找

标签:

原文地址:http://www.cnblogs.com/xsfelvis/p/4394605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!