每日一记--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 }