首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另一种算法--面试

另一种算法--面试
EN

Stack Overflow用户
提问于 2010-10-14 08:42:51
回答 5查看 2.8K关注 0票数 9

以下是问题所在:

假设你有10万个整数,从1到1百万不等。请把整数分类。时间复杂度应为O(n)。

任何分享他或她的想法的人都会受到很好的赞赏。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-14 08:46:44

听起来像是简单的计数。

  1. 为一个大小为100万的数组预留内存
  2. 将所有数组值初始化为0
  3. 通过整数循环。对于每一个整数i增加一个ai。
  4. 输出排序序列,通过遍历数组和打印每个数字i的ai次。

空间是恒定的。运行时为O(n)。

票数 15
EN

Stack Overflow用户

发布于 2010-10-14 08:46:44

暗示应该是,他们的范围从100万到100万。

请参阅针孔分类

票数 3
EN

Stack Overflow用户

发布于 2010-10-14 18:13:36

由于问题的大小是固定的,并且包含一个有限的实例集,所以任何排序算法都会在O(1)中终止。你应该让测试人员回到算法分析学校去。将这个问题推广到无限集合的一种可能方法是:您有一个大小为n的数组,其数字范围为0,10n。你能用O(n)分类吗?这对我来说很有意义。或者你可以用数组的大小和整数的范围来参数化这个问题,得到一些O(f(n,k))界。问题是当你在面试中遇到这样的问题时,你会怎么做?你是想猜面试官想听什么,还是说“让我重新表达你的问题”?还是你带着笑容朝出口走去?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3931464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档