我正在优化 Delphi 应用程序的一部分,其中经常使用不同的标准过滤对象列表。对象保存在TObjectList
结构中,通常使用每个过滤器选择整个集合的非常小的百分比(例如 1%)。对象的总数可以在 100k 范围内,并且在计算期间主集不会改变。尽管过滤器仅适用于少数几个属性,但无法以优化所有可能标准的方式对列表进行排序。
我正在寻找有关如何组织对象(数据结构)或可用于解决此问题的算法的建议。谢谢!
过滤器示例:
((Object.A between 5 and 15) AND
(Object.B < 20) AND
(Object.C(AParam) > 0)) OR
(Object.IsRoot(...))