【问题标题】:How can I sort an array that is already sorted by a secondary criteria?如何对已经按次要标准排序的数组进行排序?
【发布时间】:2026-01-19 11:10:02
【问题描述】:

假设我有一个对象数组。每个对象都包含一个整数和一个字符串。

这些对象已按字母顺序排序,并且没有两个对象包含相同的字符串。

我想对数组进行排序,使它们按从最低到最高整数的顺序排列,对于具有相同整数的对象,我想按字母顺序对它们进行排序

例如我开始:

[1 "ab"],[2 "bc"],[1 "cd"],[3 "de"],[2 "ef"]

它应该被排序到:

[1 "ab"],[1 "cd"],[2 "bc"],[2 "ef"],[3 "de"]

有没有比仅使用内置比较器排序函数的语言进行排序更快的方法? (这里我提供了比较功能)

【问题讨论】:

  • 任何stable 排序算法都可以。

标签: arrays sorting pseudocode


【解决方案1】:

可能有,但是
我觉得比较功能比什么都好

bool comp(obj a, obj b)
{
    if(a.num==b.num)return a.str < b.str;
    return a.num<b.num;
}

调用comp函数sort(arr, arr+size, comp)

【讨论】:

    最近更新 更多