复杂度

敏捷开发中的故事点到底是什么?如何预估故事点?

故事点 是敏捷项目管理和开发中的一种抽象的度量单位,用于估计实现一个或多个用户故事的复杂度,它是对工作量的一种描述方式。一个故事点就是一个数字,透过这个数字告诉整个团队用户故事的复杂度。复杂度包括功能的难易程度、风险和花多大的功夫。 故事点(story point)和预估时间(estimated)不一样,故事点是一种相对的估计,它并不能和类似“人/天”这样的单位画等号,因为每个人完成同样复杂度的工作所需的时间是不同的。我们举个例子说明一下: 假设T团队有A、B、C三位员工,A君的能力是B君的2倍,B君的能力是C君的2倍(能力是不能这样对比的,这里只是方便说明问题),T团队约定10天为一个迭代...

敏捷开发中的故事点到底是什么?如何预估故事点?

3 月,跳不动了?>>> 故事点 是敏捷项目管理和开发中的一种抽象的度量单位,用于估计实现一个或多个用户故事的复杂度,它是对工作量的一种描述方式。一个故事点就是一个数字,透过这个数字告诉整个团队用户故事的复杂度。复杂度包括功能的难易程度、风险和花多大的功夫。 故事点(story point)和预估时间(estimated)不一样,故事点是一种相对的估计,它并不能和类似“人/天”这样的单位画等号,因为每个人完成同样复杂度的工作所需的时间是不同的。我们举个例子说明一下: 假设T团队有A、B、C三位员工,A君的能力是B君的2倍,B君的能力是C君的2倍(能力是不能这样对比的,这里只是方便说明问题)...

数据结构&算法

3 月,跳不动了?>>> 在分析算法效率时,经常关注以下两种复杂度: (1)最坏情况复杂度:T worst (n) (2)平均复杂度:T avg (n) 易知T avg (n)<=T worst (n) 注:一般分析最坏情况复杂度,因为平均复杂度不容易找 下表能够比较直观的看出各个复杂度的运行时间 1 2 4 8 16 32 C(常函数) 1 1 1 1 1 1 logn 0 1 2 3 4 5 n 1 2 4 8 16 32 nlogn 0 2 8 24 64 160 n 2 1 4 16 64 256 1024 n 3 1 8 64 512 4096 32768 2 n 2 4 16...

189. 旋转数组

一、题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 : ~~~ 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] ~~~ 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的 原地 算法。 二、解决方案 方案一:暴力法 旋转 k 次,每次将数组旋转 1 个元素。 代码如下: void rotate...

OO第一单元作业总结-多项式求导

一、三次作业分析 1. 第一次作业 1.1 需求分析 第一次作业的需求是完成简单多项式导函数的求解,表达式中每一项均为简单的常数乘以幂函数形式。为取得性能分,需要优化目标为最短输出。为了满足优化目标,我们需要将含有相同指数的项进行合并。 1.2 实现方案 根据需求,我们很容易就能想到利用ArrayList构建多项式,存储每一个项,于是建立了Poly多项式类和Term项类,并利用Poly类中的属性 ArrayList<Term> poly 进行表达式的存储。由于第一次作业不需要进行输入表达式的格式判断,直接用正则表达式匹配输入字符串即可。 多项式求导程序具体实现中的步骤分为:输入串处理、求导...

OO第一单元总结

目录 OO第一单元总结 代码分析 第一次作业 第二次作业 第三次作业 分析bug 对象创建模式 对比和心得体会 OO第一单元总结 代码分析 第一次作业 UML类图分析 ​ 在本次作业中设计四个类, MainClass 类中读入,然后送入 JudgeStr 类中处理,因为没有WF判断,所以直接替换所有的空格符号,用正则表达式匹配每一项, group() 方法得到系数、指数后建立新的项,即 VariableTerm 的一个新的对象,调用 VariableTerm 类的 getDer() 方法得到求导后的项,所有的项存储在 Treemap ,由 Expression 类进行管理,输出时在...

面向对象第一单元总结博客

第一次作业 第一次作业为多项式求导,各项均为幂函数,用正则表达式匹配每一项,得到系数指数后求导输出 (1)类复杂度分析: (2)方法复杂度分析: (3)UML类图: (4)关于bug: 本次作业强测互测均未出现bug,本次互测中寻找别人程序bug主要通过阅读代码,并未发现bug (5)重构想法: 可以在多项式和幂函数之间增加项类,并考虑使用工厂模式,增强程序扩展性 第二次作业 第二次作业增加了输入格式正误的判定和三角函数以及乘积求导 (1)类复杂度分析: (2)方法复杂度分析: (3)UML类图: (4)关于bug: 本次作业使用对拍器批量测试,按文法生成数据并添加随机扰动...

OO第一单元总结

目录 第一次作业 思路 架构 复杂度分析 Bugs 第二次作业 思路 架构 复杂度分析 Bugs 第三次作业 思路 架构 复杂度 使用二叉树的优劣分析 Bugs 关于评测机 心得体会 第一次作业 思路 ​ 表达式由各个项相加组成,每个项带有自己的符号,可正可负。第一次作业的项中只包含幂函数和常数项,所以项 仅由系数和指数两个参数确定 。项之间能否合并取决于x的指数,所以在表达式中采用HashMap来存储表达式中的各个项,指数作为key,方便同类项的查询。 ​ 依次确定数据结构:表达式中用HashMap存储各个项,项中包含两个属性:系数和指数。 架构 ​ 这次作业中只设计了4个类...

OO第一单元总结——求导

一.基于度量分析程序结构 (一)第一次作业 (1)设计思路 本次作业只涉及到简单幂函数通过加减运算而复合而成的函数,因此笔者自然的把函数分成了函数本体以及单个的项两个部分,在笔者的设计中两个类的功能如下: Poly:存储函数本体、将函数的各个项分解出来 Item:存储单个的项、单个项的求导、输出 (2)UML类图 本次设计主要的采用了Poly和Item两个类,分别代表函数表达式和单个的幂函数因子,本次设计中存在的问题在于,主类中包含不必要的方法init()用以对字符串进行预处理,通过研讨课,笔者意识到在主类中只应该暴露给出用户直接使用的方法以确保程序的安全性,比如在该系列作业中...

OO Project1 亿点感悟

一、基于度量分析自己的程序结构 (1)Project1.1   毕竟是第一次的作业,总的来说挺简单的,类图也看上去一目了然,甚至我还有心思判断数据是不是可以用int而不是Bigintenger,从而节省空间,从后面的内容看来,这没必要。   接下来是类表和方法表,与后面的相比,写起来比较自由,没有很多面向对象的思想,多项式类中有一个项类的容器,并且承担了大部分工作,包括生成对象,求导,字符串化等,故复杂度较高,改进时应对多项式类尝试“减负”。 (2)Project1.2   这次的类图相比上次就略显复杂了,但主要增加的是类中的属性(两个三角函数)和方法,本次各类分工明确,结构明晰...