第十二章:算法分析:java
一、算法:node
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法表明着用系统的方法描述解决问题的策略机制。也就是说,可以对必定规范的输入,在有限时间内得到所要求的输出。git
二、算法分析:程序员
(1)算法效率:
算法效率是指算法执行的时间,算法执行时间需经过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。算法
(2)增加函数:
就是一个表示问题大小与 所用的时间(时间复杂度)或空间(空间复杂度)之间的关系。数组
(3)复杂度计算过程:数据结构
1 、算出每一行语句执行的次数dom
二、 求和,推导出一个n的表达式T(n)ide
3 、找出同数量级的表示式(n的最高次方)函数
4 、T(n)/同数量级–>常数,那么同数量级就是此算法的时间复杂度
第十四章:栈
一、线性集合:线性结构是一个有序数据元素的集合。。
二、非线性集合:存在顺序并列的状况。
三、栈是一种线性集合,元素后进先出,元素从顶部压入栈中。
四、栈有push,pop,peek,isempty,size等操做
五、使用泛型的好处:
(1).能够统一数据类型,便于操做。
(2).将运行时的异常提早到了编译时,提升了效率。
(3).避免了强制类型转换。
(4).实现代码的模板化,把数据类型看成参数传递,提升了可重用性。
六、后缀表达式:
先初始化一个栈,这个栈是用来存放运算对象的,而后定义一个变量存放最后的结果。遍历到数字则依次进栈,遍历到运算符的时候将栈顶运算符弹出(假设赋给变量a),再将此时的栈顶运算符弹出(假设赋给变量b),用后者对前者作该运算符对应的运算(假设遍历当前的运算符为+,则作计算b+a),而后将计算结果入栈。以此方式遍历整个字符串,最终的结果即为运算结果。
问题1:队列的五种基本操做是什么?
问题1解决方案:
问题2解决办法:查看这个网址泛型,得知泛型是程序设计语言的一种特性。容许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须做出指明。各类程序设计语言和其编译器、运行环境对泛型的支持均不同。将类型参数化以达到代码复用提升软件开发工做效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。让我大概理解了这个问题。
问题1:
链表中两个位置的元素交换数值时,想不出如何交换
问题1解决方案:我一开始的思路集中在交换地址上,但后来发现难度属实有点大,后来询问胡泊同窗后茅塞顿开,能够不交换地址,只交换数值。我以为这个问题主要是我忘了大一的c语言的知识同时也是上课没认真听讲。
package com.company; import org.w3c.dom.Node; public class paixu{ node point,point2,tem; int i,temp,j,max; public paixu(node head){ for(point=head;point!=null;point=point.next){ max=point.data; for(point2=point;point2!=null;point2=point2.next){ if(point2.data>max){ max=point2.data; temp=point.data; point.data=point2.data; point2.data=temp; } } } } }
问题2:toString方法的实现
问题2解决方案:
数组:从头部整形变量开始输出至尾部整形变量。
链表:从链表的头部开始往尾部进行不断输出。
本周无错题
代码练习较多,问题较为深邃(至少我看不懂)
基于评分标准我给本博客打分:16分。得分状况以下:
1.正确使用Markdown语法(加1分)
2.模板中的要素齐全(加1分)
3.教材学习中的问题和解决过程(加3分)
4.代码调试中的问题和解决过程(加4分)
5.其余加分(加7分)
6.进度条中记录学习时间与改进状况(1)
7.感想,体会不假大空(1)
8.有动手写新代码(1)
9.排版精美(1)
10.错题学习深刻(1)
11.点评认真,能指出博客和代码中的问题(1)
12.结对学习状况真实可信(1)
最近java水平感受有所提高,但仍是不太想写书上的代码。最近又要学安卓了,安卓确实有点难,一开始都没找到敲代码的位置,确实有点心态爆炸,但愿能在跟上的同时尽可能往前面撵一撵。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第7周 | 1581/4373 | 2/2 | 20/20 |