【问题标题】:Sorting an array list of intervals?对间隔的数组列表进行排序?
【发布时间】:2017-03-19 19:28:18
【问题描述】:

我有一组包含在数组列表中的间隔 S。如何根据左端点或右端点对这些数组进行排序?

例如,如果我有以下区间 [1,3],[1,2],[2,5],[3,3] 我如何根据它们的左端点对它们进行排序?

我知道不同的排序算法,如顺序排序、插入排序和合并排序,但我对如何对一组间隔进行排序一无所知。

任何能指导我正确方向的帮助或提示将不胜感激。

【问题讨论】:

  • 您的问题缺少很多信息。例如,您一直在尝试的代码和您使用的编程语言
  • 在 java 中执行此操作,我知道如何实现简单的排序算法来对整数数组进行排序,如 [1,4,6,2,3],但我对如何对集合进行排序一无所知基于左端点或右端点的间隔。

标签: java arrays sorting intervals


【解决方案1】:

尝试基数排序,如果所有值都是单个数字,它将对您有所帮助,但它很容易实现。

【讨论】:

  • 所有值都是“个位数”是什么意思。给定一个数组列表,其中存储一组整数,例如 [1,4],[1,2],[1,5],[3,6],[5,8],[3,4] 我该如何排序这些间隔仅基于它们的左端点或右端点?
  • 个位数表示,一个字母数字,如 1, 2, 3,... 尝试对第一个元素应用基数排序并进行排序,然后对第二个元素进行排序。对于单个数字,它很容易申请。
【解决方案2】:

试试这个命令

intervals.sort((i1, i2) -> Integer.compare(i1.start, i2.start));

希望您能根据起点得到正确的结果,或者如果您想根据终点进行排序,只需比较 (i1.end,i2.end)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    相关资源
    最近更新 更多