从右上角的坐标开始,若是比要找的数小,则向下;若比要找的数要大,则向左。直到到达左下角。
public static void seek(int[][] arr,int num){
if(arr==null||arr.length==0){
return;
}
int ar = 0;
int ac = arr[0].length-1;
boolean flag = false;
while(ar<arr.length){
if(compare(arr,ar,ac,num)>0){
ar++;
continue;
}else if(compare(arr,ar,ac,num)<0){
ac--;
continue;
}else{
flag = true;
break;
}
}
System.out.println(flag);
}
public static int compare(int[][]arr,int ar,int ac,int num){
return num - arr[ar][ac];
}
本文介绍了一种在二维数组中查找特定数值的高效算法。从数组的右上角开始,通过比较目标值与当前元素的大小,决定是向下还是向左移动,直至找到目标值或到达数组边界。该算法充分利用了二维数组的排序特性,实现快速查找。
682

被折叠的 条评论
为什么被折叠?



