大型旅游网站源码 织梦,电子商务网站建设考卷,做网络推广为什么会被抓,深圳seo公司助力网络营销飞跃教材学习内容总结 概述 软件工程#xff1a;是一门关于高质量软件开发的技术和理论的学科#xff0c;用来控制开发过程#xff0c;实现高质量的软件。软件工程的目标#xff1a;正确性、可靠性、健壮性、可用性、可维护性、可重用性、可移植性、运行效率。 对于可靠性和健壮…教材学习内容总结 概述 软件工程是一门关于高质量软件开发的技术和理论的学科用来控制开发过程实现高质量的软件。软件工程的目标正确性、可靠性、健壮性、可用性、可维护性、可重用性、可移植性、运行效率。 对于可靠性和健壮性这两个较难区分的特征我的理解是可靠性可以看做一个人容易不容易生病健壮性可以看成一个人生病后恢复的难易程度是身体强壮康复快还是落下病根罒ω罒 程序数据结构算法 软件程序软件工程数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。常用的数据结构比如栈先入后出和队列先入先出算法分析 算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法是解题的步骤可以把算法定义成解一确定类问题的任意一种特殊的方法。算法分析是计算机科学的一个基础并涉及多种技术和概念。算法效率算法效率是指算法执行的时间算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量通常是CPU的使用时间。增长函数表示问题n大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度CPU的使用时间或空间复杂度内存空间。渐进复杂度随着n增加时增长函数的一般性质称为算法的阶次。算法的阶次是忽略该算法的增长函数中的常量和其他次要项只保留主项而得出的。大O记法/O()与问题大小无关、执行时间恒定的增长函数称为具有O1的复杂度。具有相同阶次的算法从运行效率的角度来说都认为是等价的。更快的CPU只能给函数增加常量增加的值是固定的而算法分析可以随着函数的变化提高增值所以不能通过提高处理器速度来替代算法分析。增长函数的比较 n相对较小时各种增长函数的比较n很大时各种增长函数的比较循环运行的时间复杂度分析循环体的阶次n乘以该循环要运行的次数。 例1:时间复杂度为n * O(1) On for(int count0;countn;count)
{/*复杂度为O1的步骤系列*/
} 例2:时间复杂度为Olog2(n))进行次数为x所以2^xn,xlog2(n)复杂度为O1所以为Olog2(n))count1
while(countn)
{count *2/*复杂度为O1的步骤系列*//
}嵌套循环的复杂度分析 例1内层复杂度为On外层为On,故为On^2for{int count0;countn;count)
{for(int count20;count2n;count2){/*复杂度为O1的步骤系列*/}
}方法调用的复杂度分析 例1复杂度为printsum方法的复杂度乘以该循环的运行次数即为O(n)*O(n)O(n^2) printsum方法为for (int count0 ; countn; count)
{Printsum(count);
} public void printsumint count
{
int sum 0;
for(int i0; icount; i)sum i;
System.out.println(sum);
} 例2增长函数为复杂度相加f(n)1nn^2;得出时间复杂度为On^2public void sample (int n)
{printsum(n); //该方法调用复杂度为O1for(int count 0;countn;count) //该循环复杂度为On)printsum(count);for(int count 0;countn;count) //该循环复杂度为On^2)for(int count2 0;count2n;count2)System.out.println(count,count2);
}作业解答 EX2.1求阶次 a.10n^2100n1000 解阶次是n^2。式子中渐进复杂度最高的是n^2,它的增长速度最快。b.10n^3-7 解增长速度最快的是n^3c. 2^n100n^3 解2^n的增长速度大于n^3所以阶次是2^nd. n^2logn 解由于是相乘所以为原式n^2lognEX2.4 for(int count 0 ; count n ; count)for(int count2 0 ; count2 n ; count2 count2 2){System.out.println(count,count2);}
} 解外层循环进行次数为n内层循环为1/2n所以增长函数f(n)n* 1/2n1/2n^2;阶次为n^2EX2.5 for(int count 0 ; count n ; count)for(int count2 1 ; count2 n ; count2 count2 * 2){System.out.println(count,count2);}
} 解外层循环需要进行次数为n内层循环需要进行次数为为x,则2^xn,xlog2(n),所以增长函数是f(n)nlog2(n)而阶数与增长函数的最高阶项有关要忽略次项与常数项阶次是nlog2(n).学习进度条 代码行数新增/累积博客量新增/累积学习时间新增/累积积累0/73593/1730/330第一周0/01/18/8结对及互评 点评模板 博客中值得学习的或问题 20172305谭鑫的博客中课本疑难问题解决的很好内容全面。20172323王禹涵的博客中课本内容总结详实感悟深刻。基于评分标准我给谭鑫的博客打分7分。得分情况如下 问题加分3分感悟不假大空加1分排版精美的加1分 -正确使用Markdown语法加1分 -模板中的要素齐全加1分基于评分标准我给王禹涵的博客打分5分。得分情况如下 排版精美的加1分问题加分1分感悟不假大空加1分 -正确使用Markdown语法加1分 -模板中的要素齐全加1分感悟 有一段时间没有学习了假期有点点懈怠突然学习两章内容看了很久感觉还没进入状态比较生疏有些概念较难分清新的一学期仍需继续努力多多联系对课本的理解要到位加油吧 参考 数据结构算法分析转载于:https://www.cnblogs.com/YiYiYi/p/9614547.html