每日一记--2014.10.11

现在每天给老师一封邮件已经代替了我的博客园的每日一记了,哎。算来天天发邮件汇报工作也有半个月了,每天一到晚上就很头疼,每周不是工作日的日子就觉得无比轻松。

希望自己能把博客园的每日小程序坚持下去。嗯。

今天继续写《数据结构与算法分析》中的课后题吧,把这本书上的例题和习题都打出来算作是本学期的一个计划。

题目:

 输入是一个N*N的数字矩阵并且已读入内存,每一行均从左到右递增,每一列从上到下递增,给出一个算法决定数m是否在该矩阵中

答案解析中的算法是:从矩阵的右上角的元素开始,若m小于此元素,则向左移动到下一个元素,若m大于此元素,则向下移动,直到寻找到此元素。

 1 package 递增矩阵查找;
 2 
 3 import java.util.ArrayList;
 4 
 5 public class Chazhao {
 6 
 7     public static void main(String[] args) {
 8         
 9         int[][] aa =new int[][]{
10                 {1,2,4,5,7},
11                 {3,8,9,12,16},
12                 {6,15,18,22,26},
13                 {11,17,23,29,33},
14                 {19,25,35,45,55}
15         };
16         int aim =85;
17         boolean find =chazhao(aim,aa,5);
18         System.out.println(find);
19     }
20 
21     private static boolean chazhao(int aim, int[][] aa,int size) {
22         // TODO Auto-generated method stub
23         boolean find =false;
24         int row =0;
25         int column=size-1;
26         while(!find){
27             if((row>size-1)||(column<0))
28                 return false;
29             if(aim>aa[row][column]){
30                 row++;
31             }else if(aim<aa[row][column]){
32                 column--;    
33             }else{
34                 find=true;
35             }
36         }
37         return find;
38     }
39 
40 }

 

posted @ 2014-10-11 09:21  ivywenyuan  阅读(170)  评论(0编辑  收藏  举报