我面临以下问题。我有一些基于纪元时间的输入,如何按天对它们进行排序。
该计划的总体目标是生成一份关于 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/