如何在 1 到 50000 之间对 10000 个数字进行排序
How to sort 10000 numbers between 1 and 50000
我遇到了这个面试问题,面试官问如何在 1 到 50k 之间对 10000 个数字(存在于数组中)进行排序。随后在C++年实施。我所知道的关于排序的只是基本的排序算法,我认为面试官并不在寻找。我该怎么做?
是否有某些特定的算法可以处理这些类型的条件?
更新:很抱歉有点混乱,10000 个数字不是随机的,而是存在于数组中,值可以是 1 到 50k 之间的任何值
注意:我是算法和C++的新手,所以我怀疑你们中的一些人可能会认为这个问题是主观的,因为没有代表我的代码,但我会感谢您的帮助,因为我不知道在这种情况下可能有帮助的算法。
您可以分配 50,000 个字节,将它们初始化为 0。然后使用此数组计算每个值在一次传递中在源数组中出现的次数。然后,可以遍历大小为 50,000 的数组并提取值。
这通常被称为鸽子洞排序。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 将数字打印成文字
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 如何在 1 到 50000 之间对 10000 个数字进行排序