Implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
```func search(m [][]int, x int) (bool, int, int) {
for i := range m {
for j, v := range m[i] {
if v == x {
return true, i, j
}
}
}
return false, 0, 0
}```
```static class Position{
int i;
int j;
}

Position search(int[][] m, int x){
for(int i=0;i<m.length;i++)
for(int j=0;j<m[i].length;j++)
if(m[i][j] == x){
Position pos= new Position();
pos.i = i;
pos.j = j;
return pos;
}
return null;
}```
```function search(m, x) {
for (var i = 0; i < m.length; i++) {
for (var j = 0; j < m[i].length; j++) {
if (m[i][j] == x) {
return [i, j];
}
}
}
return false;
}```
```sub search {
my (\$x, \$m) = @_;
while ( (\$k1,\$v1) = each @\$m ) {
while ( (\$k2, \$v2) = each @\$v1 ) {
return \$k1, \$k2 if \$v2 == \$x;
}
}
}```
```fn search<T: Eq>(m: &Vec<Vec<T>>, x: &T) -> Option<(usize, usize)> {
for (i, row) in m.iter().enumerate() {
for (j, column) in row.iter().enumerate() {
if *column == *x {
return Some((i, j));
}
}
}

None
}```
`#include <string.h>`
```void search(void ***m,void *x,size_t memb_size,int len_x,int len_y,int *i,int *j)
{
for(*i=0;*i<len_x;*i+=1)
{
for(*j=0;*j<len_y;*j+=1)
{
if(!memcmp(m[*i][*j],x,memb_size))
{
return;
}
}
}
*i=*j=-1;
}```
`import std.typecons;`
```auto search(int[][] m, int x)
{
foreach (i, row; m)
{
foreach (j, cell; row)
{
if (cell == x)
return tuple(i, j);
}
}
}```
```def search(m, x):
for idx, item in enumerate(m):
if x in item:
return idx, item.index(x)```
```class Position {
int i, j;
Position(this.i, this.j);
}
Position search(List<List> m, x) {
for (var i = 0; i < m.length; i++) {
var line = m[i];
for (var j = 0; j < line.length; j++) {
if (line[j] == x) {
return new Position(i, j);
}
}
}
return null;
}```
```procedure search(m:T2dMatrix; x:TElement; out i,j:integer);
begin
for i := 0 to high(m) do
for j := 0 to high(m[i]) do
if m[i,j] = x then
exit;
i := -1;
j := -1;
end;```
```def search(m, x)
m.each_with_index do |row, i|
row.each_with_index do |value, j|
return i, j if value == x
end
end
nil
end```
```type Matrix is array (Positive range <>, Positive range <>) of Integer;

function Search (M : Matrix; X : Integer; I, J : out Integer) return Boolean is
begin
for K in M'Range (1) loop
for L in M'Range (2) loop
if M (K, L) = X then
I := K;
J := L;
return True;
end if;
end loop;
end loop;

return False;
end Search;```
```(int, int) Search(int[,] m, int x)
{
for (var i = 0; i <= m.GetUpperBound(0); i++)
for (var j = 0; j <= m.GetUpperBound(1); j++)
if (m[i, j] == x)
return (i, j);

return (-1, -1);
}```
```function search(\$x, array \$m): ?array
{
for (\$j = 0; \$j < count(\$m); \$j++) {
if ((\$i = array_search(\$x, \$m[\$j])) !== false) {
return [\$i, \$j];
}
}

return null;
}```
```-spec search(T, [[T]]) -> {pos_integer(), pos_integer()}.
search(X, M) -> search(X, M, 1).

search(_, [], _) -> throw(notfound);
search(X, [R|Rs], RN) ->
case search_row(X, R) of
notfound -> search(X, Rs, RN+1);
CN -> {RN, CN}
end.

search_row(X, Row) -> search_row(X, Row, 1).

search_row(_, [], _) -> notfound;
search_row(X, [X|_], CN) -> CN;
search_row(X, [_|Elems], CN) -> search_row(X, Elems, CN+1).```
```function search(m, x)
for i,v1 in ipairs(m) do
for j,v2 in ipairs(v1) do
if v2 == x then return i,j end
end
end
end```
```  (defn find-in-2d-matrix [m x]
(for [i (range (count m))
j (range (count (first m)))
:when (= x (-> m (nth i) (nth j)))]
[i j]))```
```def search[T](m: Iterable[Iterable[T]], x: T): Option[(Int, Int)] = {
for ((row, i) <- m.view.zipWithIndex; (column, j) <- row.view.zipWithIndex if column == x)
return Some((i, j))
None
}```
```(defun mysearch (x m)
(loop for i below (array-dimension m 0)
do (loop for j below (array-dimension m 1)
when (eql x (aref m i j))
do (return-from my-search
(values i j)))))```
`#include <utility>`
```template<typename T, size_t len_x, size_t len_y>
std::pair<size_t, size_t> search (const T (&m)[len_x][len_y], const T &x) {
for(size_t pos_x = 0; pos_x < len_x; ++pos_x) {
for(size_t pos_y = 0; pos_y < len_y; ++pos_y) {
if(m[pos_x][pos_y] == x) {
return std::pair<size_t, size_t>(pos_x, pos_y);
}
}
}

// return an invalid value if not found
return std::pair<size_t, size_t>(len_x, len_y);
}```
```module Arr = Bigarray.Array2

let search array value =
let x_max = Arr.dim1 array in
let y_max = Arr.dim2 array in
let rec loop x y =
(* End of array *)
if x = x_max then
raise Not_found
(* End of row, go to next *)
else if y = y_max then
loop (x+1) 0
else
(* If found, return it *)
if array.{x,y} = value then
(x,y)
(* Otherwise go to next col *)
else
loop x (y+1)
in
loop 0 0

```
```bool _search(const Matrix& _m, const float _x, size_t* const out_i, size_t* const out_j) {
for (size_t j = 0; j < _m.rows; j++) {
for (size_t i = 0; i < _m.cols; i++) {
if (_m.at(i, j) == _x) {
*out_i = i;
*out_j = j;
return true;
}
}
}
return false;
}```
```function search(m,x)
integer, dimension(:,:), intent(in) :: m
integer, intent(in) :: x
integer, dimension(2) :: search
search = findloc(x,m)
end function search```