A. 测试开发面试必知算法
测试开发的技能之一就是需要掌握一些开发的语言,而针对于考察开发语言,业界内比较容易采用的方式就是考察各种算法。在此做一个简单的总结(最近比较喜欢玩Python,所以都是以Python为例子,其它的语言类推。)
冒泡排序
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
实例:对列表 [2, 8, 4, 7, 5, 9, 0]进行冒泡排序
递归
递归过程一般通过函数或子过程来实现。递归方法:在函数或子过程的内部,直接或者间接地调用自己的算法。
实例:要计算1-10的10位数字的乘积,直观的算法是1 2 3 4 5 6 7 8 9,利用递归则思路是循环执行n*n-1,直到n=1时
二叉树遍历算法
从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:
⑴访问结点本身(N),
⑵遍历该结点的左子树(L),
⑶遍历该结点的右子树(R)。
以上三种操作有六种执行次序:
NLR、LNR、LRN、NRL、RNL、RLN。
二叉树的节点表示可以使用
前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
实例:求二叉树深度和宽度
求深度用递归;求宽度用队列,然后把每层的宽度求出来,找出最大的就是二叉树的宽度
字符串倒序输出
思路一:索引的方法
思路二:借组列表进行翻转
后续还有的话会继续添加的。
B. 腾讯软件测试类笔试题和面试题答案
腾讯软件测试类笔试主要两种题型:总分100分。
1、35道选择题,每题2分。覆盖操作系统,数据库,计算机网络,数据结构,软件测试等。
2、15道填空题,每空2分。
堆栈的原理是(),按结构分,可分为()堆栈,()堆栈。
二分查找法的算法过程。
数据库的恢复是通过数据备份和()。
给一个学生表,写出删除该表除了自动编号不同之外,其他信息都相同的冗余信息的语句。
如何计算一个子网可以拥有的主机数。
操作系统内核是如何实现多任务制的。
忘记三题了。
3、附加题,分数不加在以上的分数中。(10分)
1、在10000以内求出满足以下要求的书。
给出一个数,其个十百千位上的数两两相乘再相加(如1400的和几位4),其和能够被原数整除。将其原数翻转为新数(1400的新数是41),求出最大新数,并求其原数。
由于腾讯公司的笔试内容比较多,没办法全部记住,今天就跟大家分享这些内容。