这是一个面试问题。如果您有数百万的用户和文件/目录,那么如何规划一种在给定用户和路径的情况下查找文件或目录的好方法?如果文件/目录有时间戳,那么如何计算每个用户每天添加的文件/目录数?您可以使用您的方式插入文件/目录。
答案 0 :(得分:1)
您可以将它们存储在数据库表(字段用户,文件,日期)中,并对它们进行简单查询。 DBMS执行索引以使其快速。如果您不想使用mysql或MS Access,SQL server或Oracle等DBMS,则可以使用某些开源搜索应用程序,例如Lemur。
答案 1 :(得分:0)
如果您不想使用数据库,则可以使用Dictionary
和Binary Search Tree
的组合。
key
的{{1}}将是Dictionary
它的user
有2个属性:
value
Dictionary
为day
,keys
为number of entries that day
。values
Binary Search Tree
个path
个不同的文件和文件夹为nodes
。让n
为不同文件和文件夹的总数
它内置于O(nlgn)
,所需操作在O(lgn)
中完成。