四面
自我介绍
为什么选择游戏测试(情绪/兴趣+使命/责任感+性格 ;自认为不必提自己的知识掌握程度好,因为面试的过程就是在考核你的知识。如果自夸掌握程度好,后面发挥不大理想的话,面试官会怀疑是不是你讲过的其他话也有水分,也是自负呢。但如果可以提及一些项目经历也不错~)
喜欢的游戏, 吸引你的点
喜欢的游戏的缺点, 如何避免这样的bug
为什么女生喜欢怪物猎人这样打斗向游戏, 而非剧情向(后来发现我喜欢的是 怪物猎人日记, 不是怪物猎人qwq)
针对怪物猎人中装备: 弓箭的测试用例 可思考1min(弓箭与其他装备关系{弓箭自身附属:抽取弓箭后是否箭筒响应箭的数目减少. 弓箭与其他装备一同使用的攻击值} 弓箭与人物关系{不同角色佩戴同一装备不同配色;握持位置;攻击值} 弓箭自身功能{招数(是否允许多发; 火/冰箭); 射程(边界值分析 与屏幕关系(超出屏幕, 刚好屏幕边缘, 屏幕范围内); 攻击力(取决怪物级别+人物级别+装备级别); 射击方向: 左右上下. 是否可向天空发射, 如信号弹功能. } 与怪物关系{怪物攻击效果(箭穿透, 若怪物有甲壳是否箭弹开, 不同属性的箭对不同属性怪兽产生不同效果, 如冰箭可冻住怪兽, 火属性箭有火花四射, 火花有无攻击力)} )
数组的特点(首先分类:普通数组/动态数组。普通数组:长度固定且必须为常数值,不可为变量。动态数组:可动态分配,如vector,可O(1)时间复杂度快速索引寻找。但频繁插入删除操作会移动其后元素,耗时长,浪费性能。故在频繁查找时使用数组,频繁插入删除时不建议使用数组,使用链表更妥当。)
项目背景,概述及你负责的工作
你知道的复杂度为nlogn的排序算法(快排,归并排序,堆排序,二叉查找树排序)
写一下堆排序. 写好后解释一下逻辑
#include
using namespace std;
/**
* 交换数组中两个元素的位置
*/
void node_swap(vector
{
int tmp = a[x];
a[x] = a[y];
a[y] = tmp;
}
/**
* 已知二叉树中a[i]的两个子树都是大根堆,本函数通过交换a[i]和其某个儿子的
* 位置,将以a[i]为根节点的二叉树变为大根堆
*/
void heap_adjust (vector
{
int tmp = a[i]; // 用tmp保存根节点的值
for (int j = i * 2 + 1; j < len; j = i * 2 + 1){
// a[j]是a[i]的左儿子,循环条件:a[i]的左儿子存在