【剑指offer】员工年龄排序
来源:互联网 发布:excel怎样汇总数据 编辑:程序博客网 时间:2024/06/04 08:13
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25144793
对公司所有员工的年龄进行排序,公司总共有几万名员工,要求时间复杂度为O(n)。
很明显的计数排序题目,员工的年龄肯定在一个范围之内,我们这里假设在0-99之内,算很大了,这样就可以开辟一个长度为100的数组,保存各个年龄的员工的个数。
代码如下:
/*员工年龄排序,主要用计数排序的思想,时间复杂度为O(n),需要固定大小的额外辅助空间*/#include<stdio.h>#include<string.h>/*计数排序,员工年龄肯定在0-99之间*/void SortAge(int ages[],int len){if(ages == NULL || len<1)return ;int timesOfAge[100];memset(timesOfAge,0,sizeof(timesOfAge));int i;//计算每个年龄员工的个数for(i=0;i<len;i++){if(ages[i]<=99 && ages[i]>=0)timesOfAge[ages[i]]++;}//对ages进行排序int index = 0;for(i=0;i<100;i++){int j = 0;while(j<timesOfAge[i]){ages[index++] = i;j++;}}} int main(){int ages[] = {33,34,45,24,36,23,21,22,19,26,45,34,21,34,34,33,52,22,32,25,27,43,22,21,20,33,26,27,15,29};int len = 30;SortAge(ages,len);int i;for(i=0;i<len;i++)printf("%d ",ages[i]);printf("\n");return 0;}
测试结果:
算法准备放一放了,马上就要开题了,居然一点紧张感都没有,论文方向是搞视频异常检测的,还是有点小难度的,导师虽然是所谓的国家有突出贡献科学家,但是依然不管不问,毕竟这么大把年纪了,也可以理解,万事还是要靠自己!
渐渐从实习生招聘的阴影中走出来了,其实也就面了两家公司而已。开题后要转移重点了,做了些Android项目,但是掌握比较深入的却在jvm和java并发机制,Android平台相关的技术掌握的比较皮毛,接下来要加深对网络协议,java网路编程和Android平台的学习,再做个比较好点的项目,完善下之前的项目,总感觉自己的项目拿不出手,而且又不太会吹,哎!!再接再厉吧!校招前要做好充分的准备,放手一搏。。。
5 1
- 【剑指offer】员工年龄排序
- 【剑指offer】员工年龄排序
- 【剑指offer】(扩展)员工年龄排序
- 《剑指Offer》面试题:员工的年龄进行排序
- 剑指offer 对公司上万名员工按照年龄排序
- 剑指offer 2.4 在O(n)时间排序公司所有员工的年龄
- 剑指off-给员工年龄排序
- 员工年龄排序
- 所有员工年龄排序
- 员工年龄排序算法
- 剑指offer——年龄排序问题
- 对公司所有员工的年龄排序
- 题目1374:所有员工年龄排序
- 题目1374:所有员工年龄排序
- 对公司所有员工的年龄排序
- 员工年龄排序 时间效率O(n)
- 题目1374:所有员工年龄排序
- 对员工的年龄进行排序
- hadoop函数说明图
- 解决启动WebLogic输入用户名密码问题
- jQuery选择器总结
- 根据位值来计算权限
- WPF DataGrid行序号自增-技术&分享
- 【剑指offer】员工年龄排序
- 集群安装配置Hadoop详细图解
- linux下简单安装insight
- 操作数据库表,并作日志记录。
- 四季豆
- python修改文件名
- 走迷宫
- 时间电话分机阿桑地方
- wifi共享精灵2014最新版 v04.25.001 官方正式版