按数字排序



我有N个数字,我想按数字对每个数字进行排序。(在我最初的问题中,我想通过这些(贪婪方法(得到最大的数字(例如,如果我们有5个数字9 1000 845 8000 56在第一步中,我会选择9,因为9是所有第一位数字中最高的

在第二步中(因为已经选择了9(,下一个最高的第一个数字是8,但当两个或更多的数字有相同的数字时,我会比较它们的下一个数字,所以我会选择845。

在这种情况下,如果我排序,我将得到以下结果9 845 8000 56 1000。

我的问题是如何在c++中实现这一点?

提前感谢

您可以通过向sort函数传递自定义比较函数来获得预期结果。

比较功能可能是这样的:

bool compare(int a, int b) {
ostringstream x, y;
x << a; y << b;
return x.str() > y.str();
}

...
sort(array, array+n, compare);
...

在这个比较函数中,我们将integer数据转换为string数据,并简单地比较字符串值以获得预期的排序数组。

相关内容

  • 没有找到相关文章

最新更新