没有合适的资源?快使用搜索试试~ 我知道了~
首页软件测试开发校招面试题汇总
软件测试开发校招面试题汇总
5星 · 超过95%的资源 需积分: 30 83 下载量 118 浏览量
更新于2023-05-30
评论 6
收藏 1.81MB DOCX 举报
主要是总结校招面试过程中涉及到的面试题,方便大家应对面试中遇到的问题,包括Java、数据库、C++、操作系统、计算机原理、计算机网络等,共计九十多页,程序员面试必备
资源详情
资源评论
资源推荐
测试面试题总结及问题解析
计算机网络(tcp/ip 详解卷 1、谢希仁的计算机网络)、数据库(sql 必知必会、数据库案
例应用)、操作系统(现代操作系统、清华的公开课)、数据结构和算法(剑指 oer、大
话数据结构、leetcode 只做了一点、还有牛客上的算法课)、java 语言( java 程序员面试
宝典、java 程序员的基本修养、大话设计模式只看了重要的 )、测试相关(软件测试的艺
术、从菜鸟到测试架构师、软件测试技术大全、selenium,qtp,junit 的一些相关资料和
书)、linux 看了一点(鸟哥的私房菜基础篇和网络篇)。总之很多东西是看完就忘,我是
边看会在 onenote 记笔记,忘了就回去翻笔记和书再看看。
——摘自牛客某位大神的总结
因为没有对知识点进行分类,所以我在每个问题后面加上了标签,表示属于哪本书,如果
这个看的还不明白就翻对应的书或者我给的博客链接看看,后面的星星表示知识点的重要
程度,我大概是根据面试被问及的次数标记的,仅供参考。问题是我整理别人的面经还有
我自己的一些面经,答案是我从书上或者一些博客上找的,所以我只是一个搬运工哈哈哈
1. 计算机网络里面 socket 通信常用的的函数叫啥?(计算机网络)
网络上的两个程序通过一个双向的通信连接实现数据的交换根据连接启动的方
式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听
客户端请求,连接确认。
()服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接
的状态,实时监控网络状态。
()客户端请求:由客户端的套接字提出连接请求,要连接的目标是服务器端的套接
字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接
字的地址和端口号,然后就向服务器端套接字提出连接请求。
()连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,
它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端
一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续
接收其他客户端套接字的连接请求。
常用的函数:
创建:函数,这个操作类似于打开文件操作,返回 的 描述符。
绑定: 函数,把一个地址族的特定地址指定给 ,而不是由系统随机分配
、函数,客户端通过调用 函数来建立与 服务器的连接。
服务器端调用 , 开始等待客户的链接请求
函数,服务器收到请求后,用 接受请求,然后链接就建立了,可以开
始读写操作。
读写操作
函数读写完毕后要关闭相应的 描述字
2 数据结构里面的排序算法(排序算法,表格很重要)
当 n 较大,则应采用时间复杂度为 !"!的排序方法:快速排序、堆排序或归并排
序。 快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随
机分布时,快速排序的平均时间最短。黑色表中快速排序的空间复杂度不正确其他正确快
速排序的空间复杂度为 "!
从平均时间来看,快速排序是效率最高的,但快速排序在最坏情况下的时间性能不如
堆排序和归并排序。而后者相比较的结果是,在 较大时归并排序使用时间较少,但使用
辅助空间较多。
上面说的简单排序包括除希尔排序之外的所有冒泡排序、插入排序、简单选择排序。
其中直接插入排序最简单,当序列基本有序或者 n 较小时,直接插入排序是好的方法,因
此常将它和其他的排序方法,如快速排序、归并排序等结合在一起使用。
基数排序的时间复杂度也可以写成 #。因此它最使用于 值很大而关键字较小的
的序列。若关键字也很大,而序列中大多数记录的最高关键字均不同,则亦可先按最高关
键字不同,将序列分成若干小的子序列,而后进行直接插入排序。
从方法的稳定性来比较,基数排序是稳定的内排方法,所有时间复杂度为 $的简
单排序也是稳定的。但是快速排序、堆排序、希尔排序等时间性能较好的排序方法都是不
稳定的。稳定性需要根据具体需求选择
2.1 直接插入排序基本思想:
将一个记录插入到已排序好的有序表中,从而得到一个新记录数增 的有序表。即:先将
序列的第 个记录看成是一个有序的子序列,然后从第 个记录逐个进行插入,直至整个
序列有序为止。时间复杂度:O(n^2)
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所
以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以
插入排序是稳定的。
%&'
(
)*
+,*-*..
(
+&'-&/'
(
0,&'*
+),/*&)'10*)//
(
&).',&)'*
2
&).',0*
2
2
2
2.2 希尔排序(插入排序)基本思想:
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的
记录“基本有序”时,再对全体记录进行依次直接插入排序。
操作方法:
选择一个增量序列 ,,…,,其中 1)-),,;
按增量序列个数 ,对序列进行 趟排序;
每趟排序,根据对应的增量 ,将待排序列分割成若干长度为 0的子序列,分别对各子表
进行直接插入排序。仅增量因子为 时,整个序列作为一个表来处理,表长度即为整个序
列的长度。
我们简单处理增量序列:增量序列 ,(333425 为要排序数的个数
即:先将要排序的一组记录按某个增量 (3 为要排序数的个数)分成若干组子序列,
每组中记录的下标相差 对每组中全部元素进行直接插入排序,然后再用一个较小的增量
(3)对它进行分组,在每组中再进行直接插入排序。继续不断缩小增量直至为 ,最后
使用直接插入排序完成排序。
void567int5&'5int55int555
(55
5555forint5,5*5-*5..(55
55555555if&'5-5&/'(555555555533若第 个元素大于 / 元素,直接插入。小于的话,移动有序表后插入
555555555555int5)5,5/*55555
555555555555int585,5&'*5555555555533复制为哨兵,即存储待排序元素
9 555555555555&'5,5&/'*55555555533首先后移一个元素
4 555555555555while85-5&)'(5555533查找在有序表的插入位置
: 5555555555555555&).'5,5&)'*55
; 5555555555555555)5/,5*555555555555533元素后移
555555555555255
555555555555&).'5,58*55555555555533插入到正确位置
55555555255
5555555555*55
555525555
255
9 3##5
4 5#5先按增量 (3 为要排序数的个数进行希尔排序
: 5#5
; 5#355
void56int5&'5int5(55
55
5555int55,53*55
5555while551,555(55
555555556755*55
555555555,53*55
9 5555255
4 2
希尔排序时效分析很难,关键码的比较次数与记录移动次数依赖于增量因子序列 的选取,特
定情况下可以准确估算出关键码的比较次数和记录的移动次数。目前还没有人给出选取最好的
增量因子序列的方法。增量因子序列可以有各种取法,有取奇数的,也有取质数的,但需要注
意:增量因子中除 外没有公因子,且最后一个增量因子必须为 。希尔排序方法是一个不稳
定的排序方法。
2.3 简单选择排序基本思想:
剩余63页未读,继续阅读
KK-Neven
- 粉丝: 10
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3