面試題4 二維陣列中的查詢

2021-08-19 16:21:20 字數 1909 閱讀 7146

題目:二維陣列中的查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按

照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個 整數,判斷陣列中是否含有該整數。

#include 

bool find(int* matrix, int rows, int columns, int number)

else

if(matrix[row * columns + column] > number)

-- column;

else

++ row;}}

return found;

}// ********************測試**********************

void test(char* testname, int* matrix, int rows, int columns, int number, bool expected)

// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數在陣列中

void test1()

, , , };

test("test1", (int*)matrix, 4, 4, 7, true);

}// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數不在陣列中

void test2()

, , , };

test("test2", (int*)matrix, 4, 4, 5, false);

}// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數是陣列中最小的數字

void test3()

, , , };

test("test3", (int*)matrix, 4, 4, 1, true);

}// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數是陣列中最大的數字

void test4()

, , , };

test("test4", (int*)matrix, 4, 4, 15, true);

}// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數比陣列中最小的數字還小

void test5()

, , , };

test("test5", (int*)matrix, 4, 4, 0, false);

}// 1 2 8 9

// 2 4 9 12

// 4 7 10 13

// 6 8 11 15

// 要查詢的數比陣列中最大的數字還大

void test6()

, , , };

test("test6", (int*)matrix, 4, 4, 16, false);

}// 魯棒性測試,輸入空指標

void test7()

int main(int argc, char* argv)

面試題4 二維陣列中的查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。bool find int matrix,int cols,int rows,int target bool find int ...

面試題4 二維陣列中的查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下的遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。c 實現 includeusing namespace std bool find int numbers,int rows,...

面試題4 二維陣列中的查詢

面試題4 二維陣列中的查詢 題目 在乙個二維陣列中,每行都按照從左到右遞增的順序排行,每一列都按照從上到下遞增的順序排序。請完成個函式,輸入這樣的二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序。如果在這個陣列中查詢數字7,則返回true 如果查詢數字5,由於...