題目描述:
有乙個二維陣列(矩陣),每一行元素從左往右依次增大,每一列元素從上往下依次增大,
即表示為table[i][j]由於矩陣按行序和列序分別都是增加的,那麼,我們只需要每次和當前行或者列中最大的元素進行比較即可,若是要搜尋的數大於當前行列中最大的元素,那麼,直接跳到下一行列在此迴圈比較,逐步縮小查詢範圍,直到找到該元素為止,下面就以在該矩陣中查詢8為例進行說明:
**如下:
#include#includevoid youngmatrix(int arr[5], int *px, int *py, int key)
else if (arr[x][y] < key)
else
} *px = -1; //函式若沒有在前面跳出,則此處將x,y都置為-1,表示沒有查詢到
*py = -1;
}int main()
, ,
, ,
};youngmatrix(arr, &x, &y, 8);
if (x >= 0 && y >= 0 && x < 5 && y < 5)
else
system("pause");
return 0;
}
楊氏矩陣查詢
題目為 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序,如果在這個陣列中查詢數字6,則返回true 如果查詢數字10,由於陣列不含有該數字...
楊氏矩陣查詢
方案一 時間複雜度o m n 原理 從右上角開始 左下角相同 如果arr i j t,就向左查詢,如果arr i j 2013.7.23 0423 function 楊氏矩陣查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個...
楊氏矩陣查詢
題目描述 楊氏矩陣,即在乙個二維陣列中,每一行都按照從左到右嚴格遞增的順序排序,每一列都按照從上到下嚴格遞增的順序排序。請完成乙個函式,輸入這樣的乙個 n n的二維陣列和 m個整數,判斷陣列中是否含有上述 m個整數。你能解決這個問題嗎?輸入格式 可能有多個測試輸入,第一行給出總共的測試輸入的個數。對...