这一周的学习内容为教材第十三章,包括查找和排序两部分。html
查找:包括线性查找,折半查找等。java
问题一:线性查找时设置哨兵在数组第一位有什么意义。git
经过设置哨兵,可使查找过程得到一个必定能够找到的结果,此时只须要判断找到元素的位置是否是在哨兵位置,就能够判断原来序列中到底是否含有这个元素。而这一过程可使循环减小一个判断语句,循环次数多了之后就能够显著提升效率
问题二:排序算法的稳定性究竟有什么意义。算法
其实有不少算法如今看着没什么不一样,可是当放在大数据云计算的条件下它的稳定性很是重要。举个例子来讲,对淘宝网的商品进行排序,按照销量,价格等条件进行排序,它的数据服务器中的数据很是多,所以,当时用一个稳定性效果很差的排序算法,如堆排序、shell排序,当遇到最坏情形,会使得排序的效果很是差,严重影响服务器的性能,影响到用户的体验。
问题三:对于经常使用的排序方法,究竟哪一种方法效率更高?shell
1.冒泡算法效率最低。 2.插入算法效率最高。 3.选择算法是冒泡算法的3.3倍。 4.插入算法是冒泡算法的4.7倍。 5.插入算法是选择算法的1.4陪。
问题一:==,equals和compareTo的区别?编程
==:通常比较两个变量的值,返回true和false,比较对象的地址,不比较对象的内容, equals:比较两个对象的内容,通常用于比较字符串。 compareTo:在API中,java.lang包下面的基本数据类型(Integer,Float,Byte,Short,Character 等)的封装类都实现了对应的compareTo方法。例如对应Interger实现了数值大小判断;对应String按照字典排序实现字符串的判断,返回的是字符串长度差或者是字符间在码表上的差距。compareTo返回int值,大于返回大于0的整数,等于返回0,小于返回小于0的整数。
## 结对学习同窗博客(20182327)数组
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 6000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 17/17 | |
第2、三周 | 556/756 | 3/5 | 31/48 | 明白了类与方法的关系,对Java编程的思想的了解有了一些进步 |
第四周 | 673/1429 | 2/7 | 12/60 | 对两段代码之间的关系了解了一些 |
第五周 | 1308/2737 | 2/9 | 25/85 | |
第六周 | 800/3537 | 2/11 | 18/103 | |
第七周 | 4195/7732 | 2/13 | 27/130 | |
第八周 | 489/8221 | 1/14 | 6/136 |