Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105276
  • 博文数量: 23
  • 博客积分: 555
  • 博客等级: 中士
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-14 11:04
文章分类

全部博文(23)

文章存档

2012年(23)

我的朋友

分类: IT职场

2012-05-15 20:26:13

今天下午的电话面试是昨天打篮球时约的,没接到到第一次电话,拨了回去没人接,一会对方又打了过来,双方进行了沟通。作为计算机专业的容易,便很容易的将这个小插曲联想想了那著名的“三次握手”(three-way handshake),个人感觉还是有点类似的。

主要的概念点:
①进程/线程
②并行/并发
我进行了我所理解的描述:进程是运行中程序的抽象、资源拥有者,线程可看做是执行的代码段。并行和并发一个是时间点上的,一个是时间段间的。然后跟面试官也进行了友好的沟通和交流,其也进行了双方能互相理解的引导,对方提到了“线程间共享资源”的概念,让我浮想到“线程局部存储区”的东西,对方又引导的说明了“单核和多核”的问题,我也表明了“单核并发,多核并行”的想法。

主要的语言点:
语言方面个人对C/C++稍微熟一点,其他有所了解。对方充分考虑了我个人的因素,问了如下两个点。
①volatile
②static
我从语义方面阐述了volatile是“易变的”的意思。对方进一步引导提问其修饰的数据存储在哪里,寄存器or内存。我就我的理解肯定的回答说存储在内存中,并进一步表示如果存储在寄存器中会被编译器用来优化等。对方表示正确,并进一步讲解说volatile的数据用到时才从内存载入、每次用到都会载入的基本意思。就static的语义“静态的”进行了交流,并阐述了在函数中的static变量存放在堆区、并在函数下一次调用时仍然存在,在类中的static函数是通过类名调用而不是类的实例对象调用。然后对方交流了C中的static函数不能被外部引用的情况。

主要的算法点:
①数组与链表优缺点的比较~
②寻找链表的中间节点
③qsort相关
④字符串“12345”-> 整数12345
⑤“you are welcome" -> "welcome are you"
——》交流了一下数组的随机访问特性及在内存中连续,链表可以动态增删。对方引导交流了数组的查询简单,增删麻烦,讨论了链表查询麻烦,增删简单的问题。
——》比较有意思的是寻找链表的中间节点,我突然想到了“追赶思想”,阐述了使用两个指针“你步进2,我步进1”的想法,并讨论了一些细节。对方并教了计数的方法,先计数一遍,然后再寻找中点,这个几近两次遍历的方法比较通用。
——》问了qsort复杂度,O(n*logn),并阐述了qsort的基本过程,提到了随机选取枢轴数据(参照数据)以减小最坏时间,并说明了其基于交换的思想,并分为两部分递归。
——》字符串转为整数的问题,提到了使用*10并向后移动遍历的想法。对方引导了相关的细节,并说明最好进行判断一下输入的ascii码范围。
——》最后一个问题,建模了stack结构,并说明的push-push-push然后pull-pull-pull的想法。对方提出了you->uoy的问题,我说明了是以一个单词为元放置到栈中而不是以一个字符为元放到栈中。

面试的最后:
进行了职位相关的交流。

结语:
本次电面感觉很舒适,具体问题细节有待进一步考证与研究。感谢对方的友好引导,感谢曾经的程序设计竞赛训练。

一个需要注意的地方:
即问题输入的判定。在程序设计竞赛中,输入通常是规定好的并约定不会有意外输出,使问题解决者能专注数据结构与算法设计,而实际生产中通常会有不规则或畸形输入,即要进行输入过滤或判定。这是在“字符串转数字”问题交流过程中面试官给予的想法。
阅读(949) | 评论(0) | 转发(0) |
0

上一篇:SQL——union & join

下一篇:重装Ubuntu后

给主人留下些什么吧!~~