求算法 C++

windows_oracle 2016-12-28 04:24:58
Id type userId score
1 百度 121 60
2 百度 131 69
3 百度 141 35
4 百度 121 43
5 百度 131 78
6 百度 121 60
7 百度 131 35
8 腾讯 123 43
9 腾讯 151 25
10 腾讯 123 14
11 腾讯 141 24
12 腾讯 141 17
有这个数据,想把他整成这个类型存储。
百度 131 35
百度 141 35
百度 121 43
腾讯 123 14
腾讯 141 17
腾讯 141 24
腾讯 151 25

也就是说按score 排序, 但是 要求
1.用户Id 必须是唯一,也就是相同Id 取分数低的。(userId 多条)
2.每一个分类取100条。
3. score 是小到大排序。
4.score 相同按用户排序。

这个怎么设计结构,求思路。



...全文
132 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipqtjmqj 2016-12-29
  • 打赏
  • 举报
回复
1楼正解,你需要自己写一个排序函数 C语言中的qsort也可以
windows_oracle 2016-12-29
  • 打赏
  • 举报
回复
用数据库来数的话就是分组排序去起top n . 目前是最笨的方法,是每一个来做比较,但是效率有点低。 因为数据量比较大。 想过用 大顶堆 来做排序,但是涉及一个问题,就是用户id相同的时候不同评分,用户有相同的。这个怎么处理,暂时还没想到更好的算法。
windows_oracle 2016-12-29
  • 打赏
  • 举报
回复
这样不行, 我要的是 比如百度, 他不同用户的分数有小到大排序。
  • 打赏
  • 举报
回复
struct来保存你的一四种数据类型和vector保存每一个项,排序可以直接std::sort()解决~

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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