gpt4 book ai didi

c - 如何对非常大的数字进行排序

转载 作者:行者123 更新时间:2023-11-30 20:41:42 25 4
gpt4 key购买 nike

如何对非常大的数字进行排序

03 10103538 2222 1233 6160 0142 
03 10103538 2222 1233 6160 0141
30 10103538 2222 1233 6160 0141
30 10103538 2222 1233 6160 0142
30 10103538 2222 1233 6160 0141
30 10103538 2222 1233 6160 0142

用 C 语言

最佳答案

这是一个类似的 SPOJ 问题 http://www.spoj.pl/problems/SBANK/

您可以使用基数排序或简单地通过二叉搜索树来解决它(我就是这样做的)。

这是您在 C++ 中的操作方式(在以下位置实现您自己的 std::map/std::set/二叉搜索树三)

    map<string,int> tab;
map<string,int>::iterator it;
char acc[40];
int n;
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
gets(acc);
tab[acc]++;
}
for(it=tab.begin();it!=tab.end();it++)
{
printf("%s %d\n",it->first.c_str(),it->second);
}
printf("\n");

我的上述程序还打印相等数字的计数,我认为您的问题中没有指定这一点。因此,在这种情况下,简单的 std::set 或简单的二叉搜索树也可以工作。尽管在上面的问题中,我可以很容易地使用 std::set 而不是 std::map 来解决。

关于c - 如何对非常大的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com