值这个问题不是一门功课,那只是出于个人兴趣,主要我的好奇心算法设计搜索矩阵
我的教授在课堂上谈到这个问题的一小会儿,但他没有”这件事谈得很多。下面是问题:
给定一个m×n矩阵A,其整数元素分别沿水平方向和垂直方向排列。我需要开发一个递归程序来搜索一个查询值a 是否在A.讨论您的设计的时间复杂性。
所以我想了一会儿。我的第一种方法是检查基本情况:第一个元素和最后一个元素
检查,如果第一个元素>如果最后一个元素<项目
产品,我想找到
什么项目检查这是虚矩阵:(x可以是任何数字,但是这个矩阵是那种垂直和水平方向)
first x x x x
x x x x x
x x mid x x
x x x x x
x x x x last
后,我检查基本情况,并确保“项”我想找到的是这个矩阵的范围之内,我不知道是否从矩阵的“中”(如二分搜索)检查是可以的。如果项目<中,则着重于左半部分。如果项目>中,然后专注于右半部分。
但是,然后我试图让一个矩阵像下面和我的“项目”是10
1 2 3 4 5
2 4 7 8 9
3 6 10 11 12
如果我按照我之前说的方式:因为10比中间的“7”时,我专注于正确的部分。然后我检查“8”,因为10大于“8”,我搜索右边的部分。但10是不是在正确的...
任何人都可以给我的想法或见解如何解决这个问题?非常感谢
我几个月前在这里还记得同样的问题。尝试搜索StackOverflow。 – 2011-05-22 21:22:10
类似的问题:http://stackoverflow.com/questions/3316246/search-a-sorted-2d-matrix – 2011-05-22 21:27:12
和一个相关的问题(但不一样):http://stackoverflow.com/questions/5000836/selection -algorithms-on-sorted-matrix – 2011-05-22 21:28:37