一篇完整的网易笔试题.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一篇完整的网易笔试题

一篇完整的网易笔试题 发布时间:2010-11-04 来源:应届毕业生求职网 卷(研发类笔试题) 第一部分(必做): 计算机科学基础 1. (单选)软件设计中模块划分应该遵循的准则是: ??? A.低内聚低耦合 B.高内聚低耦合 C.低内聚高耦合 D.高内聚高耦合 2. (单选)最坏情况下时间复杂度不是n(n-1)/2的排序算法是: ??? A.快速排序(n^2) B.冒泡排序(n^2) C.直接插入排序(n^2) D.堆排序(nlogn) 3. 哈希表中解决冲突的方法通常可以分为open addressing和chaining两类, 请分别解释这两类冲突解决方法的大致实现原理 //见书 4. 简单的链表结构拥有很好的插入 删除节点性能, 但随机定位(获取链表第n个节点)操作性能不佳, 请你设计一种改进型的链表结构优化随机定位操作的性能, 给出设计思路及其改进后随机定位操作的时间复杂度 具体参见Purely Functional Random-Access Lists.pdf 大概地说,节点构成多棵相连的完全二叉树来表示(为了不浪费节点),存取顺序为前序遍历。 复杂度为O( log?n?) 这里有代码 /~jwalker/ra-list/ 5. 什么是NP问题?列举典型的NP问题(至少两个)?对于一个给定的问题你通常如何判断它是否为NP问题? NP(Nondeterministic Polynomial问题)。但是对于很多问题来说,他们找不到一个多项式的解决方法, ,只能“尝试”很多种方案 才能够得出一个答案,这显然是很费时的,这种问题未NP问题。 NPC(NP Complete)问题,可以这么认为,这种问题只有把解域里面的所有可能都穷举了之后才能得出答案,这样的问题是NP里面最难 旅行商问题 TSP Travelling Salesman Problem 子集和问题 Hamilton回路要满足两个条件:   1.封闭的环   2.是一个连通图,且图中任意两点可达   经过图(有向图或无向图)中所有顶点一次且仅一次的通路称为哈密顿通路。   经过图中所有顶点一次且仅一次的回路称为哈密顿回路。 最大团问题 #include <list> #include <iostream> void print(const std::list<int> &I) { std::list<int>::const_iterator iter; for(iter=I.begin();iter!=I.end();iter++) printf("%d\n",*iter); } int main() { std::list<int> L; L.push_back(1); L.push_back(2); L.push_back(3); print(L); return 0; } 3. 假设某C工程包含a.c和b.c两个文件,在a.c中定义了一个全局变量foo, 在b.c中想访问这一变量时该怎么做? 增加一个a.h,写上extern int foo,然后让a.c和b.c都包含a.h 4. C++中的new操作符通常完成两个工作, 分配内存及其调用相应的构造函数初始化 请问: 1) 如何让new操作符不分配内存, 只调用构造函数? 2) 这样的用法有什么用? 解答:(要求new显式调用构造函数,但不分配内存。) 题目要求不能生成内存 还要调用构造函数 说明这个类里面没有对内部操作 但可以对外部操作 比如static的数 摘录:如果我是用new分配对象的,可以显式调用析构函数吗? 可能不行。除非你使用定位放置 new. class Fred {public: ????? Fred() ????? { ??????????? cout<<"fuck"; ??????????? } ?????? ????? };? int main() { ???? ??? Fred*f=new((void*)10000)Fred(); ??? system("pause");??? }?? 其中这个10000可以是任意数,但不能为0 2) 定位放置new(placement new)有很多作用。最简单的用处就是将对象放置在内存中的特殊位置。这是依靠 new表达式部分的指针参数的位置来完成的:   #include <new>??????? // 必须 #include 这个,才能使用 "placement new" #include "Fred.h"???? // class Fred 的声明 void someCode() { ?? char memory[sizeof(Fred)];???? // Line #1 ?? void* place = m

您可能关注的文档

文档评论(0)

zyg_2930102 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档