我遇到了一个面试问题,面试官问我如何在1到50k之间对10000个数字进行排序(在数组中)。随后在C++中实现了这一功能。我只知道排序的基本算法,我假设面试官没有看上去像for.How,我能做吗?
是否有特定的算法来处理这类情况?
更新:抱歉,10000数字不是随机的,而是存在于数组中的,值可以在1到50k之间。
注意:,我是算法和C++的新手,所以我怀疑你们中的一些人是否会认为这个问题是主观的,因为没有代表我的代码,但是我很感谢您的帮助,因为我不知道在这种情况下可能有用的算法。
发布于 2014-03-05 22:35:39
您可以分配50,000个字节,将它们初始化为0。然后使用此数组计算每个值在源数组中一次传递发生的次数。然后,可以对大小为50,000的数组进行传递,并提取值。
这通常被称为针孔分类。
https://stackoverflow.com/questions/22210812
复制相似问题