題目:二維陣列中的查詢
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按
照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個 整數,判斷陣列中是否含有該整數。
#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,由於...