当前位置: 首页 > news >正文

广告公司推广渠道/seo外包服务

广告公司推广渠道,seo外包服务,网络培训班心得体会800字,宝应网站开发题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。 分析:排序是面试时经常被提及的一类题目,我们也熟悉其中很多种算法,诸如插入排序、归并排序…

题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。

分析:排序是面试时经常被提及的一类题目,我们也熟悉其中很多种算法,诸如插入排序、归并排序、冒泡排序,快速排序等等。这些排序的算法,要么是O(n2)的,要么是O(nlogn)的。可是这道题竟然要求是O(n)的,这里面到底有什么玄机呢?

题目特别强调是对一个公司的员工的年龄作排序。员工的数目虽然有几万人,但这几万员工的年龄却只有几十种可能。上班早的人一般也要等到将近二十岁才上班,一般人再晚到了六七十岁也不得不退休。

由于年龄总共只有几十种可能,我们可以很方便地统计出每一个年龄里有多少名员工。举个简单的例子,假设总共有5个员工,他们的年龄分别是2524262425。我们统计出他们的年龄,24岁的有两个,25岁的也有两个,26岁的一个。那么我们根据年龄排序的结果就是:2424252526,即在表示年龄的数组里写出两个24、两个25和一个26

想明白了这种思路,我们就可以写出如下代码:

void SortAges(int ages[], int length)

{

if(ages == NULL || length <= 0)

return;

const int oldestAge = 99;

int timesOfAge[oldestAge + 1];

for(int i = 0; i <= oldestAge; ++ i)

timesOfAge[i] = 0;

for(int i = 0; i < length; ++ i)

{

int age = ages[i];

if(age < 0 || age > oldestAge)

throw new std::exception("age out of range.");

++ timesOfAge[age];

}

int index = 0;

for(int i = 0; i <= oldestAge; ++ i)

{

for(int j = 0; j < timesOfAge[i]; ++ j)

{

ages[index] = i;

++ index;

}

}

}

在上面的代码中,允许的范围是099岁。数组timesOfAge用来统计每个年龄出现的次数。某个年龄出现了多少次,就在数组ages里设置几次该年龄。这样就相当于给数组ages排序了。该方法用长度100的整数数组辅助空间换来了O(n)的时间效率。由于不管对多少人的年龄作排序,辅助数组的长度是固定的100个整数,因此它的空间复杂度是个常数,即O(1)

http://www.lbrq.cn/news/827137.html

相关文章:

  • 网站建设好学吗/新东方在线koolearn
  • 装饰公司手机网站/关键词排名方法
  • 电商网站建设需求/网络优化工具
  • 打开无忧管理后台网站/刷神马seo排名首页排名
  • 怎么修改收录网站的标题/网站单向外链推广工具
  • 国家小城镇建设政策网站/seo推广公司
  • 哪里可以做网站平台/智慧教育
  • 各行各业网站建设/关键词优化工具有哪些
  • 盐城哪家做网站的正规/惠州百度推广优化排名
  • 网站在线服务模块怎么做测试/在线识别图片百度识图
  • 做个企业网网站怎么做/百度识图扫一扫
  • 设计商城的网站建设/品牌推广包括哪些内容
  • 做视频网站 许可证/seo外贸公司推广
  • 建设微信商城网站制作/优化seo方案
  • ecshop网站价格/重庆森林经典台词梁朝伟
  • 邯郸疫情最新情况 最新消息/北京seo公司工作
  • 网站新闻发布后前台不显示/seo关键词查询
  • 事业单位网站备案/百度seo多久能优化关键词
  • 微信分销网站建设哪家好/重庆网站页面优化
  • 企业网站建设方式/企业营销型网站建设
  • 河北交通建设投资集团公司网站/千峰培训可靠吗?
  • 太原网页设计师/seo技术学院
  • 企业自助建站软件/免费的api接口网站
  • 公司网站建设完成通知/seo优化按天扣费
  • 宜兴做网站的联系方式/市场seo是什么
  • 内容电商的网站如何做/发稿服务
  • 哈尔滨网站制作公司/seo免费诊断联系方式
  • 网站建设服务领域/公司网站优化
  • 怎么用新浪云做网站/网站优化排名软件网
  • 专业网站制作公司/商丘搜索引擎优化
  • 基于FPGA的多级流水线加法器verilog实现,包含testbench测试文件
  • @import导入css样式、scss变量用法、static目录
  • 7. 命令模式
  • leetcode_121 买卖股票的最佳时期
  • 零基础学习性能测试第二章-linux服务器监控:网络iftop
  • Java File 类详解:从基础操作到实战应用,掌握文件与目录处理全貌