假设我们有1000
个项目和一个地方,一次向访问用户显示这些项目中的任何一个。我们可以捕获点击率和一起显示的项目。
10
)?10
项?编辑:我正在寻找不同的方法,而不是实现。
答案 0 :(得分:0)
自我实施:
按流行维护有序数组和包含对流行度二叉树中相应项的引用的哈希表。 所以,最后10个是最受欢迎的项目,访问它们将是O(M),其中M是要显示的项目数。
维护有序数组:
可以使用具有log(N)复杂度的自平衡二叉树来维护它,其中N是元素的总数
http://www.sitepoint.com/data-structures-2/
作为实用选项:
数据库可用于存储项目,B-tree索引可添加到人气列; DBMS将需要在此进行优化 https://en.wikipedia.org/wiki/Database_index