2013-03-13 73 views
0

我的理解是,我的問題類似於幾個帖子,但我認爲它有不同的方面。我正在尋找一個更大的數組中的子數組或模式。我將使用數千甚至數百萬行的數組,並且我需要在該數組中找到一個模式。我將搜索的值與數組中的值類似。例如,我說10,000行的數組將會主要滿足1的0的L和H,我將在那裏搜索某個模式,例如尋找1 0 1 1 H.在數組中查找子數組並返回它的位置

從我所能看到的大部分發布在其他帖子上的解決方案是處理更小規模的數組,並且子數組與源數組更加不同。另外,當我在源數組中找到數組時,我需要返回該子數組的位置。 (我期待在C#中執行此代碼)

+2

子數組的長度是否有所不同? – Inisheer 2013-03-13 13:05:17

+1

你的問題與[本帖]不一樣(http://stackoverflow.com/questions/1780423/find-the-first-occurrence-starting-index-of-the-sub-array-in-c-sharp) – 2013-03-13 13:11:15

+1

您可以使用Knuth-Morris-Pratt算法修改子字符串搜索:http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm – 2013-03-13 13:11:59

回答

0

這與子字符串搜索基本相同。它們都是關於在隨機訪問較大序列內尋找子序列的。從你的描述來看,這聽起來像你的數組是一個字符串數組,這正是一個字符串。

你在筆記中描述的算法非常好,易於正確編碼。如果速度不夠快,請查看KMP。

相關問題