值這個問題不是一門功課,那只是出於個人興趣,主要我的好奇心算法設計搜索矩陣
我的教授在課堂上談到這個問題的一小會兒,但他沒有」這件事談得很多。下面是問題:
給定一個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