Repository files navigation
程序员面试基础知识(小零碎)数据结构,算法,计网,设计模式,操作系统
2. 算法复杂性的定义。大O、θ、Ω、小o分别表示的含义。
4. 分治算法的思想,经典的分治算法(全排列、二分搜索、归并排序、快速排序、线性时间选择、最接近点对问题)。
5. 动态规划算法解题框架,动态规划算法的两个要素是什么?备忘录方法是什么?
6. 经典的动态规划问题(矩阵连乘问题、最长公共子序列问题、0-1背包问题)。
8. 经典的贪心问题(活动安排问题、背包问题、装载问题、哈夫曼编码、单源最短路径、最小生成树问题)。
10. 经典的回溯算法(n后问题、0-1背包问题、旅行售货商问题)。
12. 经典的分支限界算法(0-1背包问题、旅行售货商问题)。
2. 栈的两个应用:括号匹配和表达式的计算。是怎么应用的?表达式计算用的是哪种表达方式?有什么好处?
3. 字符串匹配算法:朴素的匹配算法、KMP算法。
4. 二叉树前序、中序、后序递归遍历算法。二叉树前序非递归遍历算法。
6. 哈希。哈希函数的有哪些种?余数的取法? 处理冲突的方法? 闭散列方法有哪些?
8. 二叉平衡树的插入结点的原理,有哪几种旋转方式?分别适用于哪种情况。分析二叉平衡树的时间复杂度。
9. 红黑树的定义,红黑树的性能分析和与二叉平衡树的比较。
12. 常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形。
13. 常用分配排序有哪几种? 基数排序的定义,分类及原理。
14. B树、B+树、Trie的概念及用途,添加删除结点的原理。
基础篇:操作系统、计算机网络、设计模式【山科大牛陈磊整理】
1. 进程的有哪几种状态,状态转换图,及导致转换的事件。
4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)
5. 线程的实现方式. (也就是用户线程与内核线程的区别)
8. 内存池、进程池、线程池。(c++程序员必须掌握)
14. Windows内存管理的方式(块式、页式、段式、段页式).
15. 内存连续分配方式采用的几种算法及各自优劣。
20. 几种页面置换算法,会算所需换页数。(LRU用程序如何实现?)
2. OSI有哪几层,会画出来,知道主要几层的各自作用。
3. TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。
5. ARP协议的用途 及算法、在哪一层上会使用arp ?
8. 知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
11. IP报文的格式,格式的各个字段的含义要理解。
12. MTU的概念,啥叫路径MTU? MTU发现机制,TraceRoute(了解)。
16. Ping协议的实现原理,ping 命令格式。
18. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。
19. DNS的概念,用途,DNS查询的实现算法。
27. TCP的流量控制和拥塞控制实现原理(会画拥塞控制的典型图)。
30. 阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。(比较难,有兴趣可以了解)
31. HTTP基本格式。(java程序员必须掌握)
About
程序员面试基础知识(小零碎)数据结构,算法,计网,设计模式,操作系统
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.