首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带基排序的排序日期

带基排序的排序日期
EN

Stack Overflow用户
提问于 2012-05-02 05:36:36
回答 2查看 1.7K关注 0票数 0

我有一个给定的日期字符串数组,格式是dd/mm/yyyy

我想用基数排序按月和年排序,但我不知道如何排序,因为最终它将根据月份的最大数目进行排序。

例如,我有以下数组: 16/04/2012 01/05/2013 01/02/2012 10/11/2012 01/12/2012

通常排序后的结果是: 01/02/2012 16/04/2012 01/05/2013 10/11/2012 01/12/2012

而我想要的是: 01/02/2012 16/04/2012 10/11/2012 01/12/2012 01/05/2013

我还没有编写代码,因为我不知道算法是如何工作的,我只能用生成一个基排序

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-02 06:13:06

考虑对日期进行排序,而不是在所拥有的表示上排序,而是在单独的排序键上排序。例如,对于日期01/02/2012,创建一个排序键20120201。现在,数字按照从最重要到最不重要的顺序排列,您可以将排序键看作数字,并将基排序应用于它们。

如果您愿意,您不需要显式创建排序键,但是您必须修改为一轮基数排序选择一个数字的代码,以强制执行正确的排序。

票数 1
EN

Stack Overflow用户

发布于 2012-05-02 05:50:25

你将需要申请两次基数排序,首先在月份,然后在一年。如果您只使用基数排序一次,您将不得不在一年排序,但您的月份在同一年内将不会被订购。也许您可以在一年内的月份上应用不同的算法,或者根本不使用基排序。你为什么只能排序一次,有什么特别的原因吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10408248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档