Linux网络监控工具
|
比如,上面这颗树,就是一颗AVL树,不信你可以数数看,是不是每个节点的两个子树的高度差都不超过1。 是不是很难发现它真的是一颗AVL树,没错,这是AVL树的第一个缺点,不够直观,特别是节点个数多的时候。
第二个缺点,就是插入、删除元素的时候自平衡的过程非常复杂,比如,上面这颗树插入一个节点T: 但是,平衡树一直只是一个概念,直到1962年才由两个苏联人发明了第一种平衡树——AVL树。 严格来说,平衡树是指可以自平衡的二叉查找树,三个关键词:自平衡、二叉、查找(有序)。 AVL树
AVL树(由发明者Adelson-Velsky 和 Landis 的首字母缩写命名),是指任意节点的两个子树的高度差不超过1的平衡树。 这是啥?单链表?没错,当按照元素的自然顺序插入元素的时候,二叉查找树就退化成单链表了,单链表的插入、删除、查找元素的时间复杂度是多少?O(n)。 所以,在极限情况下,二叉查找树的时间复杂度是非常差的。 既然,插入元素后有可能导致二叉查找树的性能变差,那么,我们是否可以增加一些手段,让插入元素后的二叉查找树依然性能良好呢? 答案是肯定的,这种手段就叫做平衡,这种可以自平衡的树就叫做平衡树。 平衡树 平衡树(self-balancing or height-balanced binary search tree),是指插入、删除元素后可以自平衡的二叉查找树,使得它的时间复杂度可以一直渐近于O(log n)。
比如,上面那颗树,按A、B、C插入元素后,做一次旋转操作,就可以再次变成查找时间复杂度为O(log n)的树。 这么一看一清二楚了吧,哪些 bug 还没开始改,哪些正在改,以及改完待测试的有哪些,都会一清二楚的进行分类。 当你改完 bug 之后,将改 bug 任务拖入到待测试,然后测试小姐姐哪里就会知道,哦,小鹿这个 bug 改完了,我可以进行测试了,如果测试通过,测试小姐姐会把你的任务拉如到待上线的一栏中。 整个开发流程就是这个样子的,每个人都在这条流水线上有序的干着属于自己的那一部分,以上聊的是改 bug 的工作流程。 其实我们前端在开发新页面时,也有一套工作流程,首先我们在 Zeplin 看到 UI 设计图,然后根据设计图进行开发,开发完成之后,提交代码,在 Jira 中将开发任务拖至待 UI 确认,UI 确认无误后,你就可以对该页面进行开发一些交互的功能。 小结
以上主要大概的写了下现在的开发流程和前端开发规范,里边还有很多需要注意的细节没有详细的说到,因为每个公司都是不一样的,以后可能你进入一家公司会有自己的工作流程和开发规范,今天写这篇文章主要目的,还是让在校生主要了解一下以后工作后的开发流程。 (编辑:广元站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



