we got an increasing sorted multidimensional array for example:
int[][] mat = {{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}};
How can
Use java.util.Arrays. Use Arrays.binarySearch() function on flattened matrix:
int[][] mat = {{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}};
int key = 3;
int[] oneDArray = new int[mat[0].length*mat[0].length];
int s = 0;
for(int i = 0; i < mat[0].length; i ++)
for(int j = 0; j < mat[0].length; j ++){
oneDArray[s] = mat[i][j];
s++;
}
int found = Arrays.binarySearch(oneDArray, key);
if(found > -1){
System.out.println(found/ mat[0].length + "," + found % mat[0].length);
}
And the demo: https://ideone.com/bFZVMs