Algorithm 在包含O(n)中所有不同元素的nxn数组中查找编号

Algorithm 在包含O(n)中所有不同元素的nxn数组中查找编号,algorithm,Algorithm,给出一个nxn元素数组,使每行按升序排列,每列按升序排列,设计一个On算法来确定数组中给定的元素x是否为。您可以假设nxn数组中的所有元素都是不同的 请告诉我是否有人知道这个问题的解决方法。从第一行最后一列开始,即i=0,j=n-1 while true { if (j< 0 || i > (n-1) ) break; // element not found if (array[i][j] == x) return i,j else if (x < array[i][j]

给出一个nxn元素数组,使每行按升序排列,每列按升序排列,设计一个On算法来确定数组中给定的元素x是否为。您可以假设nxn数组中的所有元素都是不同的


请告诉我是否有人知道这个问题的解决方法。

从第一行最后一列开始,即i=0,j=n-1

while true {
if (j< 0 || i > (n-1) )
 break; // element not found
if (array[i][j] == x)
 return i,j
else if (x < array[i][j])
 j = j -1; // and repeat
else 
 i = i+1; // and repeat
}
这是开着的。说明:


从第一行和最后一列开始。i=0;j=n-1每次x小于current元素减量j,否则增量i.

你能给我们举个例子吗?它应该做什么和不应该做什么?我真的看不懂你写的东西。3 4 5 6 7 8 9 10 11现在如果有人让我搜索9,那么它应该会返回true或false。我不明白,请向我解释一下你所采用的方法。开始时j和i的值是多少?i=0,j=n-1,即第一行和最后一列