- 博客(7)
- 收藏
- 关注
原创 测试开发基础之算法(11):二叉树的三种遍历算法及典型题解
二分查找 https://www.cnblogs.com/longyunfeigu/p/9316082.html散列表 python的dict二叉树堆 python的heapq字符串匹配图贪心、分治、回溯和动态规划
2019-12-25 10:17:22 3931
原创 测试开发基础之算法(10):Hash算法的常见应用
想象一下,在软件测试实践中,测试上传下载图片或者文件的接口时,我们如何对上传或者下载的图片和文件的正确性进行校验呢?带着这个问题,我们开启hash算法的学习。hash算法在软件编程中应用非常广泛,常见的比如MD5、SHA等。我们一般不会动手写一个hash算法,更多的是拿现成的来用。我们这篇文章也是重点介绍,如何运用hash算法解决现实问题。1. 什么是hash算法?前面提到的散列表数据结构,...
2019-12-24 19:59:35 736
原创 测试开发基础之算法(9):散列表原理及在Python中的应用
我们知道,数组具有一个特别强大的特性是,能够根据下标随机访问数组元素,时间复杂度是O(1)。散列表(Hash表)正是列用了数组的这一特性,对数组进行了扩展,实现了针对非整型下标的高效存储和访问。1. 散列思想举个简单例子,假设运动员编码是6位数字,要想将99名运动员的姓名按照运动员编号存入数组a中,数组下标对应运动员编号的后两位,也就是数组下标1的位置a[1]存放编号为030101的运动员姓名...
2019-12-23 20:32:04 531
原创 测试开发基础之算法(8):二分查找的6种常用应用场景
二分查找是针对有序数据集合的查找算法,一种非常简单易懂的快速查找算法,查找效率非常高,时间复杂度达到O(logn)。日常生活中经常会用到二分查找算法,比如猜数字游戏,查找字典的某一页等。拿查找字典中某一页为例,假设一个字典一共500页,你想查找第200页的内容,那么你先随机翻开字典,如果翻开的页码比200小,则在字典的后半部分继续查找,如果翻开的页面比200大,则在字典的前半部分继续查找。之后,...
2019-12-11 22:21:16 5749
原创 测试开发基础之算法(7): 如何编写递归代码
递归其实一点不神秘,在日常生活中具有广泛的应用。比如,你想打听小D同学的地址,但是你不认识小D,但认识小A,只能向小A打听小D同学的地址,但是小A也不认识小D,但认识小B,只能向小B打听小D同学的地址,同样悲剧的是,小B不认识小D,但认识小C,只能向小C打听小D同学的地址。正好小C认识小D,问到了小D的地址,就将小D的地址告诉了小B,小B又将地址告诉了小A,小A将地址告诉你了。我们把打听地址的动...
2019-12-11 09:40:21 431
原创 测试开发基础之算法(6):队列的操作及应用
队列是一种常见的线性表数据结构,它的典型特征是先进先出。即先入队列的先出队,后入队列的后出队。队列有两个基本操作:入队(enqueue),即将一个数据放入到队列的尾部,出队(dequeque),即将一个数据从对头移除。队列的数据接口可以用下图表示队列可以用数组实现,也可以用链表实现。用数组实现的队列是顺序队列,用链表实现的队列是链式队列。1.用Python列表实现队列下面的代码是用Py...
2019-12-04 19:18:43 531
原创 测试开发基础之算法(5):栈的基础操作及应用
1. 栈的概念栈是一种“操作受限”的线性表,支持两种基础操作,入栈和出栈。特点是先进后出,后进先出,也就说是先入栈的数据后出栈,后入栈的数据先出栈。栈有几个概念需要我们了解:栈大小:就是栈的容量,表示最多可以放多少个数据。栈中元素:栈中的数据栈顶:栈的最上面的元素栈底:栈中最下面的元素入栈:将新的数据放入栈顶出栈:将数据从栈顶取出来2.实现一个栈栈可以用数组来实现,也可以...
2019-12-02 15:53:07 397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人