主页 详情

《程序员面试手册 概念、编程问题及面试题》_(印)纳拉辛哈·卡鲁曼希著;爱飞翔译_14399234_9787111590118

【书名】:《程序员面试手册 概念、编程问题及面试题》
【作者】:(印)纳拉辛哈·卡鲁曼希著;爱飞翔译
【出版社】:北京:机械工业出版社
【时间】:2018
【页数】:694
【ISBN】:9787111590118
【SS码】:14399234

最新查询

内容简介

第1章 编程基础

1.1变量

1.2数据类型

1.3数据结构

1.4抽象数据类型

1.5内存与变量

1.6指针

1.6.1指针的声明

1.6.2指针的使用

1.6.3指针的操纵

1.6.4数组与指针

1.6.5动态内存分配

1.6.6函数指针

1.7参数传递的方式

1.7.1实际参数与形式参数

1.7.2参数传递的语义

1.7.3各种编程语言所支持的参数传递方式

1.7.4按值传递

1.7.5按结果传递

1.7.6有可能发生的参数冲突

1.7.7按值-结果传递

1.7.8按引用传递(别名机制)

1.7.9按名称传递

1.8绑定

1.8.1静态绑定(前期绑定)

1.8.2动态绑定(后期绑定)

1.9作用域

1.9.1静态作用域

1.9.2动态作用域

1.10存储类别

1.10.1存储类别为auto的变量

1.10.2存储类别为extern的变量

1.10.3存储类别为register的变量

1.10.4存储类别为static的变量

1.11存储空间的安排

1.12编程方式

1.12.1无结构的编程

1.12.2过程式的编程

1.12.3模块式的编程

1.12.4面向对象的编程

1.13面向对象编程的基本概念

1.13.1类与对象

1.13.2封装

1.13.3抽象

1.13.4数据隐藏

1.13.5多态

1.13.6继承

1.13.7继承的类型

1.13.8动态绑定

1.13.9消息传递

第2章 脚本语言

2.1解释器与编译器

2.1.1编译器

2.1.2解释器

2.1.3编译器与解释器的区别

2.2什么是脚本语言

2.3 shell脚本编程

2.3.1命令的重定向与管道

2.3.2变量

2.3.3命令行参数

2.3.4命令替换

2.3.5算术扩展

2.3.6控制结构

2.3.7函数

2.4 Perl

2.4.1从“Hello world!”程序开始

2.4.2 Perl的命令行参数

2.4.3 Perl的数据类型与变量

2.4.4引用

2.4.5声明变量

2.4.6变量的作用域

2.4.7字符串字面量

2.4.8 Perl的标准输入端

2.4.9 Perl语言的运算符

2.4.10条件语句

2.4.11循环

2.4.12子例程

2.4.13字符串操作

2.4.14包/模块

2.5 Python

2.5.1什么是Python

2.5.2布尔类型

2.5.3整数

2.5.4字符串

2.5.5列表与元组

2.5.6函数

2.5.7把代码包装成模块

第3章 与设计有关的面试题

3.1术语介绍

3.2技巧

3.3可供练习的其他设计问题

第4章 操作系统的概念

4.1术语介绍

4.2与操作系统概念有关的问题

第5章 计算机网络的基础知识

5.1介绍

5.2局域网与广域网

5.3数据包分割与多路复用

5.4终端设备

5.5中介设备

5.6集线器、交换机与路由器的定义

5.7介质

5.8端对端网络与客户端/服务器网络

5.9互联网是如何运作的

5.10 OSI模型与TCP/IP模型的区别

5.11客户端/服务器结构与互联网

5.12 ARP与RARP

5.13子网

5.14路由器的工作原理

5.15 单播、广播、多播

5.16 tracert/traceroute及ping命令的工作原理

5.17什么是QoS

第6章 数据库概念

6.1术语介绍

6.2与数据库概念有关的问题

第7章 智力题

7.1智力题

第8章 算法介绍

8.1什么是算法

8.2为什么要做算法分析

8.3算法分析的目标

8.4什么是运行时间分析

8.5怎样对比不同的算法

8.6什么是增长率

8.7几种常见的增长形式

8.8算法分析的类型

8.9渐近表示法

8.10大O表示法

8.11大Ω表示法

8.12大?表示法

8.13算法分析为什么又叫渐近分析

8.14渐近分析指南

8.15三种表示法的性质

8.16常用的对数公式与求和公式

8.17分治算法的主定理

8.18与分治算法的主定理有关的问题

8.19递减式递推(减而治之)算法的主定理

8.20另一种递减式递推(减而治之)算法的主定理

8.21与算法分析有关的问题

第9章 递归与回溯

9.1介绍

9.2什么是递归

9.3为什么要用递归的办法解决问题

9.4递归函数的格式

9.5演示递归调用时的内存占用情况

9.6递归与迭代

9.7运用递归时的注意事项

9.8递归算法举例

9.9与递归有关的问题

9.10什么是回溯

9.11回溯算法举例

9.12与回溯有关的问题

第10章 链表

10.1什么是链表

10.2将链表用作抽象的数据类型

10.3为什么要用链表

10.4数组概述

10.5比较链表、数组与动态数组

10.6单链表

10.7双链表

10.8循环链表

10.9节省内存的双链表

10.10松散链表

10.11跳跃链表

10.12与链表有关的问题

第11章栈

11.1什么是栈

11.2怎样使用栈

11.3将栈用作抽象数据类型

11.4栈的运用

11.5实现

11.6对比各种实现方式

11.7与栈有关的问题

第12章 队列

12.1什么是队列

12.2如何使用队列

12.3将队列用作抽象数据类型

12.4异常

12.5运用

12.6实现

12.7与队列有关的问题

第13章树

13.1什么是树

13.2术语表

13.3二叉树

13.4二叉树的类型

13.5二叉树的性质

13.6遍历二叉树

13.7泛化树(N叉树)

13.8通过线索二叉树来遍历

13.9表达式树

13.10异或树

13.11二叉搜索树

13.12平衡二叉搜索树

13.13 AVL树

13.14其他形式的树

13.14.1红黑树

13.14.2伸展树

13.14.3扩充树(增强树)

13.14.4区间树(区段树)

13.14.5替罪羊树

第14章 优先级队列与堆

14.1什么是优先级队列

14.2将优先级队列用作抽象数据结构

14.3运用

14.4实现

14.5堆与二叉堆

14.6二叉堆

14.7与优先级队列和堆有关的问题

第15章 图算法

15.1介绍

15.2术语表

15.3图的运用

15.4将图用作抽象的数据结构

15.4.1邻接矩阵

15.4.2邻接列表

15.4.3邻接集合

15.4.4表示图的方法的对比

15.5图的遍历

15.5.1深度优先搜索(DFS)

15.5.2广度优先搜索(BFS)

15.5.3对比DFS与BFS

15.6拓扑排序

15.7最短路径算法

15.8最小生成树

15.9与图算法有关的问题

第16章 排序

16.1什么是排序

16.2为什么要排序

16.3排序算法的分类方式

16.3.1按照比较的次数来分类

16.3.2按照交换操作的次数来分类

16.3.3按照内存使用量来分类

16.3.4按照是否递归来分类

16.3.5按照是否稳定来分类

16.3.6按照适应性来分类

16.4其他的分类方式

16.5冒泡排序

16.6选择排序

16.7插入排序

16.8希尔排序

16.9归并排序

16.10堆排序

16.11快速排序

16.12树排序

16.13线性时间的排序算法

16.14计数排序

16.15 桶排序

16.16基数排序

16.17拓扑排序

16.18外部排序

16.19与排序有关的问题

第17章 搜索

17.1什么是搜索

17.2为什么要搜索

17.3各种类型的搜索

17.4在无序的数据中执行线性搜索

17.5在已经排好序/有序的数组中执行线性搜索

17.6二分搜索

17.7对比几种基本的搜索算法

17.8符号表与哈希

17.9字符串搜索算法

17.10与搜索有关的问题

第18章 选择算法

18.1什么是选择算法

18.2通过排序来选择

18.3基于分区的选择算法

18.4线性选择算法——中位数的中位数算法

18.5把最小的k个元素找出来

18.6与选择算法有关的问题

第19章 符号表

19.1介绍

19.2什么是符号表

19.3实现符号表

19.4比较实现符号表的各种方式

第20章 哈希

20.1什么是哈希

20.2为什么要使用哈希

20.3将哈希表用作抽象数据结构

20.4哈希技术的原理

20.5哈希技术的组成要素

20.6哈希表

20.7哈希函数

20.8负载因子

20.9冲突

20.10冲突解决技术

20.11单独链接法

20.12开放定址

20.12.1线性探测

20.12.2二次探测

20.12.3二次哈希

20.13比较各种冲突解决技术

20.14哈希技术如何把复杂度降为O(1)

20.15 哈希技术

20.16哪些问题不适合用哈希表解决

20.17 Bloom过滤器

20.17.1工作原理

20.17.2选择合适的哈希函数

20.17.3设置长度合适的位向量

20.17.4空间方面的优势

20.17.5时间方面的优势

20.17.6实现

20.18与哈希有关的问题

第21章 字符串算法

21.1介绍

21.2字符串匹配算法

21.3蛮力法

21.4 Rabin-Karp字符串匹配算法

21.5用有限状态机来实现字符串匹配算法

21.5.1状态机的运作过程

21.5.2构建有限状态机时的注意事项

21.5.3 匹配算法

21.6 KMP算法

21.6.1前缀表

21.6.2匹配算法

21.7 Boyce-Moore算法

21.8适合用来保存字符串的数据结构

21.9用哈希表来保存字符串

21.10用二叉搜索树来存放字符串

21.11前缀树

21.11.1什么是前缀树

21.11.2为什么要使用前缀树

21.11.3声明前缀树

21.11.4向前缀树中插入字符串

21.11.5在前缀树中查找字符串

21.11.6用前缀树来表示字符串有什么缺点

21.12三元搜索树

21.12.1声明三元搜索树

21.12.2向三元搜索树中插入字符串

21.12.3在三元搜索树中查找字符串

21.12.4显示三元搜索树中的全部字符串

21.12.5在三元搜索树中查找最长的字符串

21.13比较二叉搜索树、前缀树及三元搜索树

21.14后缀树

21.14.1前缀与后缀

21.14.2规律

21.14.3什么是后缀树

21.14.4构建后缀树

21.14.5运用后缀树

21.15 与字符串有关的问题

第22章 算法设计技巧

22.1介绍

22.2分类

22.3按实现方式分类

22.3.1递归算法与迭代算法

22.3.2过程式算法与声明式(非过程式)算法

22.3.3串行算法、并行算法、分布式算法

22.3.4确定性的算法与非确定性的算法

22.3.5精确算法与近似算法

22.4按设计方式分类

22.4.1贪婪算法

22.4.2分治算法

22.4.3动态规划算法

22.4.4线性规划算法

22.4.5归约(转化并治理)算法

22.5其他分类方式

22.5.1按研究领域划分

22.5.2按复杂程度划分

22.5.3随机化的算法

22.5.4分支定界与回溯

第23章 贪婪算法

23.1介绍

23.2贪婪算法的策略

23.3哪些问题适合用贪婪算法求解

23.4贪婪算法是否能应对所有的问题

23.5贪婪算法的优点与缺点

23.6可以运用贪婪算法的场合

23.7理解贪婪算法

23.8与贪婪算法有关的问题

第24章 分治算法

24.1介绍

24.2什么是分治策略

24.3分治技术是否能用来解决所有的问题

24.4用示意图来说明分治技术

24.5理解分治技术

24.6分治技术的优点

24.7分治技术的缺点

24.8分治算法的主定理

24.9分治算法的适用场合

24.10与分治技术有关的问题

第25章 动态规划

25.1介绍

25.2什么是动态规划策略

25.3什么样的问题适合用动态规划来解决

25.4动态规划技术能否应对所有的问题

25.5动态规划的方式

25.5.1自下而上的动态规划

25.5.2自上而下的动态规划

25.5.3两种规划方向的对比

25.6动态规划算法示例

25.7理解动态规划

25.7.1斐波那契数列

25.7.2求某数的阶乘

25.7.3最长的公共子序列

25.8与动态规划有关的问题

第26章 复杂度类

26.1介绍

26.2多项式时间/指数时间

26.3什么是判定性问题

26.4判定过程

26.5什么是复杂度类

26.6复杂度类的类型

26.6.1 P类

26.6.2 NP类

26.6.3反NP类

26.6.4 P、 NP与反NP之间的关系

26.6.5 NP困难类

26.6.6 NP完全类

26.6.7 P、 NP、反NP、NP困难与NP完全之间的关系

26.6.8 P是否等于NP

26.7归约

第27章 其他概念

27.1介绍

27.2与位运算有关的技巧

27.2.1按位与

27.2.2按位或

27.2.3按位异或

27.2.4左移位

27.2.5右移位

27.2.6按位取反

27.2.7判断第K个二进制位有没有设置(或者说是不是1)

27.2.8设置第K个二进制位(也就是将其设为1)

27.2.9清除第K个二进制位 (也就是将其设为0)

27.2.10切换第K个二进制位

27.2.11把值为1且最靠右的二进制位设置成0

27.2.12把值为1且最靠右的二进制位标出来

27.2.13把值为0且最靠右的二进制位标出来

27.2.14判断某数是不是2的幂

27.2.15与2的幂相乘

27.2.16与2的幂相除

27.2.17求出与2的幂相除的余数

27.2.18将二进制表示形式反转

27.2.19统计值为1的二进制位个数

27.2.20创建掩码,以便将尾部连续出现的0标注出来

27.2.21把奇数位置上的二进制位与偶数位置上的二进制位互换

27.2.22用不做除法的方式来求平均值

27.3其他编程问题

第28章 非技术问题

28.1面试技巧

28.2非技术问题举例


书查询(www.shuchaxun.com)本网页唯一编码:
b67c1552f99ef91f8b22ac6c3952880f#a0201bc98b55a30fc9167f8456452c22#94831134#14399234.zip