Algorithm 读取和乘法排序矩阵
我有一个关于两个大小为NxN的排序矩阵的一些运算的问题。 也就是说,矩阵的排序方式是每一行和每一列按升序排序。我的任务是首先读取两个矩阵,然后将它们相乘,这将生成另一个排序的平方矩阵。在这个结果矩阵中,我必须搜索一个元素,但问题是时间复杂度限制是Algorithm 读取和乘法排序矩阵,algorithm,sorting,matrix,Algorithm,Sorting,Matrix,我有一个关于两个大小为NxN的排序矩阵的一些运算的问题。 也就是说,矩阵的排序方式是每一行和每一列按升序排序。我的任务是首先读取两个矩阵,然后将它们相乘,这将生成另一个排序的平方矩阵。在这个结果矩阵中,我必须搜索一个元素,但问题是时间复杂度限制是O(n^2(lgn)),而典型的乘法算法是O(n^3) 如何查找同时动态计算正确值的元素?有人能帮我解决这个问题吗?我已经挣扎了一个星期左右,我仍然没有看到一个好的解决办法 我真的很感激你的任何帮助 致以最良好的祝愿 在排序矩阵中搜索元素可以在O(N)时
O(n^2(lgn))
,而典型的乘法算法是O(n^3)
如何查找同时动态计算正确值的元素?有人能帮我解决这个问题吗?我已经挣扎了一个星期左右,我仍然没有看到一个好的解决办法
我真的很感激你的任何帮助
致以最良好的祝愿 在排序矩阵中搜索元素可以在
O(N)
时间内完成
1. Start from lower left corner of the matrix A[N-1][0] (i = N-1, j = 0).
2. If element is > A[i][j], go right (increment j).
3. If element is < A[i][j], go above (decrement i).
4. If element is == A[i][j], Stop with success.
5. If i < 0 or j == N, Stop with failure.
1。从矩阵A[N-1][0](i=N-1,j=0)的左下角开始。
2.如果元素大于A[i][j],则向右移动(增量j)。
3.如果元素
现在,您需要在一个矩阵中搜索一个元素,该矩阵是两个排序矩阵的乘积
在我看来,它可以在O(N^2)
时间内完成
只需应用上述搜索算法,快速计算矩阵元素。计算每个元素需要
O(N)
时间,因为要将一行乘以一列。因此,算法的总体复杂度应为O(N^2)
谢谢您的回复!但是,我担心如果某些值出现多次,可能会忽略某些值。但我会努力实现它。:)谢谢你@vladimir1923你能举一个算法不起作用的例子吗?