您的位置:首页 > 编程语言 > Java开发

java 程序题 二分法查找二维数组(Dichotomy)

2017-06-04 10:35 337 查看
一个二分法查找二维数组的程序题
public class Search2DMatrix {
public static void main(String[] args){
int[][] matrix = new int[][]{{1,   3,  5,  7},{10, 11, 16, 20},{23, 30, 34, 50}};
System.out.println(searchMatrix(matrix, 10));
}

public static boolean searchMatrix(int[][] matrix, int target) {
for(int i = 0;i<matrix.length;i++){
int begin = 0;
int end = matrix[i].length-1;

while(begin <= end){
int middle = (begin + end)/2;
if(target < matrix[i][middle]){
end = middle-1;
//System.out.println("no found1"); 用来跟踪定位
}else
if(target > matrix[i][middle]){
begin = middle+1;
//System.out.println("no found2"); 用来跟踪定位
}else
return true;
}
}
return false;
}
}
当然查找一维数组更加简单。只需去掉第一个for循环即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: