有一个二维数组.----杨氏矩阵

来源:互联网 发布:腾讯ec软件 编辑:程序博客网 时间:2024/06/06 04:32

有一个二维数组.----杨氏矩阵

数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);

1 2 3

4 5 6

7 8 9

#include <stdio.h>

#include<stdlib.h>

#define ROWS 3

#define COLS 3

#include<string.h>

int find_num(int arr[ROWS][COLS],int k,intcols,int rows)

{

        introw=0;

        intcol=cols-1;

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

        {

            if(arr[row][col]>k)

                      col--;

            else if(arr[row][col]<k)

                      row++;

            else

                      return 1;

        }

        return-1;

}

int main()

{

        intarr[ROWS][COLS]= {1,2,3,2,3,4,4,5,6};

        intret=find_num(arr,6,ROWS,COLS);//6在数组中,7不在//

        if(ret==1)

             printf("ok\n");

        else

                   printf("no\n");

        system("pause");

        return0;

}

 

0 0
原创粉丝点击