行列递增矩阵的查找

来源:互联网 发布:excel省市数据 编辑:程序博客网 时间:2024/05/21 13:59
题目描述:
在一个m行n列的二维数组中,每一行都按照从左到有的递增顺序排列,每一列都按照从上到下递增顺序排列。现输入这样一个二维数组和整数,判断该数组是否含有该整数!
O(m+n)

点击(此处)折叠或打开

  1. #include<iostream>
  2. using namespace std;
  3. //const int COL = 4;
  4. //const int ROW = 4;
  5. bool find(int **array,int Col,int Row,int searchKey)//注意这里的参数传递
  6. {
  7.     int row = 0;
  8.     int col = Col-1;
  9.     
  10. //    int compare = array[0][COL-1];
  11.     while (1)
  12.     {
  13.         if (array[row][col] == searchKey)
  14.         {
  15.             return true;
  16.         }
  17.         else if (array[row][col] > searchKey && row < Row-1)
  18.         {
  19.             ++row;
  20.         }
  21.         else if (array[row][col] < searchKey && col >= 0)
  22.         {
  23.             --col;
  24.         }
  25.         else
  26.             return false;
  27.     }

  28. }
  29. int main()
  30. {
  31.     int COL,ROW;
  32.     cin >> COL;
  33.     cin >> ROW;
  34.     int **a = new int *[ROW];
  35.     for (int i = 0;i < COL;i++)
  36.     {
  37.         a[i] = new int[COL];
  38.     }
  39.     for (int i = 0;i < ROW;i++)
  40.     {
  41.         for (int j = 0;j < ROW;j++)
  42.             cin >> a[i][j];
  43.     }
  44. //    int a[][4] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
  45.     cout << find(a,COL,ROW,18)<< endl;
  46.     return 0;
  47.     
  48. }

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(132) | 评论(0) | 转发(0) |
0

上一篇:linux内核的一点总结

下一篇:内存管理

相关热门文章
  • test123
  • 编写安全代码——小心有符号数...
  • 使用openssl api进行加密解密...
  • 一段自己打印自己的c程序...
  • 彻底搞定C语言指针详解-完整版...
给主人留下些什么吧!~~