我有一個存儲幾百或幾千個字符串的SQLite數據庫,我保留這些字符串的數組,使我可以更快速地搜索我的數據庫。但是,用戶可以使用搜索字符串進行搜索,並且我將對數據庫中的字符串進行排序,以確定它們與搜索字符串的距離。例如,讓我們說他們搜索「foo」。如果我在我的數據庫中有條目,「foo」,「foobar」和「foo foo」,沒有人有任何想法可以按順序對這些字符串進行排序:在線性時間基於搜索字符串排序字符串
1.「foo」(完全匹配)
2.「富富」(包含搜索字符串的兩倍)
3.「foobar的」(它包含搜索字符串一次)
有誰知道,或者有一個什麼想法算法會有這個結果嗎?如果有人希望發佈任何代碼片段,我正在使用java和C++,但是我真的只是在尋找算法的想法。
注意,我想是這樣fobar或不明原因發熱,以在搜索結果中還顯示,因爲它是1函關從搜索,
的http://弱勢族羣。 com/spell-correct.html可能是有趣的,但它使用了完全不同的概念。 –
同樣感興趣:使用許多算法從2天前http://stackoverflow.com/questions/7805897/simple-spell-checking-algorithm/7808099#comment9559839_7808099 –