我想找出匹配3個屬性的匹配算法,我想不出有效的解決方案。這裏是我的算法如何在多個值上進行有效匹配
的僞代碼算法執行以下操作:
- 檢查是否有第一標準相匹配。
- 如果第一條標準匹配,我嘗試根據其他標準縮小匹配範圍。
- 如果第一個標準沒有匹配,則嘗試 在第二個標準上進行匹配。
- 如果 第二條標準匹配,那麼我會嘗試根據最後一條標準 縮小匹配範圍。
- 等...
看起來這只是算法重演,如果我添加另一個值相匹配,那麼該算法快速增長非常大的現實。
//try to match on criteria 1
if results exist for match on criteria 1 {
//try to match on criteria 1 & 2
if results exist for match on criteria 1 & 2 {
//try to match on criteria 3
if result exist for match on criteria 1,2,3 {
return results for match on 1,2,3
}
else
return results for match on 1,2
}
else
return results for match on 1
}
//try to match on criteria 2
else if results exist for match on criteria 2 {
//try to match on criteria 2 & 3
if result exist for match on criteria 2,3 {
return results for match on 2,3
}
else
return results for match on 2
}
//try to match on criteria 3
else if results exist for match on criteria 3 {
return results for match on 3
}
else {
no match
}
有沒有更好的方法來做到這一點?看起來好像
@MitchWheat如果我合併結果,那麼我就不會得到最收窄的結果可能。我會得到一個大的結果集,其中包含近距離和窄距的匹配。該算法試圖獲得最接近的匹配。 – user2158382
如果列表具有驗證標準X的值,向列表添加新值會使標準X失效? –