c - 纪元时间排序器

标签 c epoch

我面临以下问题。我有一些基于纪元时间的输入,如何按天对它们进行排序。

该计划的总体目标是生成一份关于 url 命中率,从最高命中率到最低命中率排序,有条理 每日(使用 GMT),最早的日期排在最前面。 C 中是否有任何库,我可以用来按天对纪元时间进行排序

1407564301|www.nba.com
1407478021|www.facebook.com
1407478022|www.facebook.com
1407481200|news.ycombinator.com
1407478028|www.google.com
1407564301|sports.yahoo.com
1407564300|www.cnn.com
1407564300|www.nba.com
1407564300|www.nba.com
1407564301|sports.yahoo.com
1407478022|www.google.com
1407648022|www.twitter.com

输出

08/08/2014 GMT
www.facebook.com 2
www.google.com 2
news.ycombinator.com 1
08/09/2014 GMT
www.nba.com 3
sports.yahoo.com 2
www.cnn.com 1
08/10/2014 GMT
www.twitter.com 1

最佳答案

您可以使用哈希表(或类似的东西)。 Here您可以找到更多详细信息,我会给您一个基本的解释,以及如何将其应用到您的案例中。

哈希表用于使用哈希函数对数据进行分类。基本上,假设您有一些桶,每个桶都标有一些值。获取一个数据条目,通过哈希函数运行它,并将其放入与哈希函数返回的值相同的桶中。显然,在您的情况下,哈希函数需要是将纪元时间映射到一天的函数。有很多方法可以做到这一点,但最简单的可能是使用标准函数 strftime ,它将时间戳转换为您想要的任何格式的日期,并将其用于哈希函数。

当然,您可能希望动态分配这些“存储桶”(可能基本上是一些包含 URL 数组的数据结构),以优化内存使用。

关于c - 纪元时间排序器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30467388/

相关文章:

c - 递归结构

c - float 值(value)突然变得巨大

java - 自纪元以来时间不稳定的公历日历

javascript - 将纪元时间转换为人类可读时间

Python:如何在每次调用时更新变量的值?

c - 在 OSX 上为 ICU 核心生成或查找 C 头文件

c - C程序中三角形的运算

c++ - 将 0 个参数传递给可变参数宏在 GCC 中失败,但仅在 C++ 中?

java - 获取自 Java 中的 Epoch 以来的天数、周数和月数

python - 在Python中,如何仅使用datetime包获取本地化时间戳?