算法设计

chin_chen 2009-03-05 01:41:32
国内的一些帖吧,如baidu/csdn,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c++语言),空间和时间复杂度,
...全文
162 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sher12 2009-03-05
  • 打赏
  • 举报
回复
把所有主题分为几个大类
大类再分为若干小类
大类只有几个,先不管它
把小类连成一个数组

小类
{
所属大类
小类里的主题组成的链表 //有序链表,以名字排序
链表的尾指针
小类里的主题数目
常用主题组成的缓存链表(数组也可以,链表节约空间) //有序链表,以主题使用次数排序
链表的尾指针
缓存链表的数目(大概是小类里的主题数目*(1%--5%),当然这个数目自己实际测一下为好)
新主题链表
链表的尾指针
新主题链表的数目
} ARRAY[]

小类里的主题组成的链表的节点 //每个节点就是一个主题了
{
名字
内容
回复链表
链表尾指针
回复链表的数目
用户ID,时间,……
}

缓存链表的节点
{
名字
指向的主题节点地址
主题使用的次数
}

操作:
增加一个主题
{
确定在所属的小类
增加在主题链表中
新主题链表中增加一个指向
}

查找一个主题
{
确定所属的小类
先在新主题链表中找 如果找到 则返回
然后在缓存链表中找 如果找到 则使用次数增加
最后在主题链表中找 如果找到 则在考虑是否在缓存表中增加一个指向,使用次数增加
}
册除主题,回复主题……

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧