二维数组查找的JAVA实现

来源:互联网 发布:业务员定位软件 编辑:程序博客网 时间:2024/06/02 11:57
package org.lza;/** * 在一个二维数组中,每一行按照从左到右递增的顺序排序,每一列按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 * @author Joson * */public class AlgorithmRealizeByJava {public static void main(String args[]){Test();}/** * 判断一个二维数组是否有要查找的数字 * @param num 待查找数字 * @param data 要查的二维数组 * @return 存在返回TRUE 否则返回FALSE */public static boolean isContainNum(int num, int data[][]){if(data==null||data.length<1||data[0].length<1)//如果待判断数组为空则直接返回FALSE{System.out.println("数组为空!");return false;}boolean flag=false;//定义一个布尔变量 用来标志数组中是否含有被判断的元素int rows=data.length;//取得数组的行数int cols=data[0].length;//取得数组的列数for(int row=0,col=cols-1;row<rows&&col>=0;){if(num==data[row][col]){//判断数字与数组右上角的数字的大小 相等则直接返回trueflag=true;break;}else if(num<data[row][col]){//如果比右上角的数字小 根据数组特性排除这一列col--;}else{row++;//根据数组特性排除这一行}}return flag;//返回判断结果}private static void Test(){final int data[][]={{1,2,3},{2,3,4},{4,5,6}};//声明一个测试数组final int data1[][]={};System.out.println(isContainNum(1,data));//左上角数字测试System.out.println(isContainNum(3,data));//右上角数字测试System.out.println(isContainNum(4,data));//左下角数字测试System.out.println(isContainNum(6,data));//右下角数字测试System.out.println(isContainNum(0,data));//小于数组所有的数字测试System.out.println(isContainNum(8,data));//大于数组所有的数字的测试System.out.println(isContainNum(2,data1));//空数组的测试System.out.println(isContainNum(8,null));//NULL数组的测试}}

0 0
原创粉丝点击