面試综述—知易行难未雨绸缪.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面試综述—知易行难未雨绸缪

知易行难 未雨绸缪(除算法外面试最容易出现的题目,尤其适合电话面试)知易行难 未雨绸缪1一、数据结构:31、数组和链表的区别?32、Hash表相关。33、排序相关,这些排序的稳定程度。44、Dijistra算法和Kruskal算法的区别。45、查找相关。56、二叉树、二叉搜索树、平衡二叉树、二叉排序树、B+/B-树,红黑树。57、怎么判断一个链表中有环。6二、数据库:61、数据库索引的数据结构。63、索引相关。74、数据库中表的关联关系的理解。75、索引是怎么提高查询速度的,为什么能够提高查询速度。86、Acid是什么。87、什么是sql注入,如何防止。87、Sql优化相关。10三、设计模式:11四、网络方面:121、TCP建立连接三次握手/释放四次握手。122、Socket相关。123、Tcp和udp区别。134、http协议。http报文包含的内容。13五、操作系统:141、进程和线程的区别。142、死锁是什么鬼东西,怎么避免。143、什么是线程安全的。144、垃圾回收机制的理解。155、线程间通信和进程间通信。15六、C++:151、智能指针相关。152、STL相关。153、内存相关:164、New、delete和malloc、free的区别?195、C++回收机制。196、指针和引用的区别。197、C++中值的传递方法。198、深拷贝和浅拷贝。199、虚析构函数。209、介绍static和const的用法。2010、模板2011、多重继承如何消除向上继承的二义性。20一、数据结构:1、数组和链表的区别?逻辑结构角度:数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)。内存存储角度:(静态)数组从栈中分配空间, 对于程序员方便快速,但自由度小。链表从堆中分配空间, 自由度大但申请管理比较麻烦。2、Hash表相关。哈希表是种数据结构,它可以提供快速的插入操作和查找操作。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。哈希表也有一些缺点它是基与数组的,数组创建后难于扩展某些哈希表被基本填满时,性能下降得非常严重,所以程序虽必须要清楚表中将要存储多少数据(或者准备好定期地把数据转移到更大的哈希表中,这是个费时的过程)。散列函数:1. 直接寻址法:取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key) = a?key + b,其中a和b为常数(这种散列函数叫做自身函数)  2. 数字分析法  3. 平方取中法  4. 折叠法  5. 随机数法 6. 除留余数法:取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。即 H(key) = key MOD p, p=m。不仅可以对关键字直接取模,也可在折叠、平方取中等运算之后取模。对p的选择很重要,一般取素数或m,若p选的不好,容易产生同义词。冲突解决方法:1. 开放寻址法:Hi=(H(key) + di) MOD m, i=1,2,…, k(k=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列,可有下列三种取法:  1. di=1,2,3,…, m-1,称线性探测再散列;  2. di=1^2, (-1)^2, 2^2,(-2)^2, (3)^2, …, ±(k)^2,(k=m/2)称二次探测再散列;  3. di=伪随机数序列,称伪随机探测再散列。 ==  2. 再散列法:Hi=RHi(key), i=1,2,…,k RHi均是不同的散列函数,即在同义词产生地址冲突时计算另一个散列函数地址,直到冲突不再发生,这种方法不易产生“聚集”,但增加了计算时间。  3. 链地址法(拉链法) 当存储结构是链表时,多采用拉链法,用拉链法处理冲突的办法是:把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。3、排序相关,这些排序的稳定程度。设待排序元素的个数为n.1)当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短; 堆排序 : 如果内存空间允许且要求稳定性的, 归并排序:它有一定数量的数据移动,所以我们可能过与插入排序组合,先获得一定长度的序列,然后再合并,在效率上将有所提高。2) 当n较大,内存空间允许

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档