20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结
Posted blueflameashe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结相关的知识,希望对你有一定的参考价值。
20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结
教材学习内容总结
- 查找
- 线性查找
- 二分查找
- 哈希查找
- 排序
- 选择排序
- 插入排序
- 冒泡排序
- 快速排序
- 归并排序
教材学习中的问题和解决过程
- 问题1:改进冒泡排序
- 问题1解决方案:设立以个flag,如果有一次没有交换,那么排序提前完成
- 问题2:改进线性查找
- 问题2解决方案:倒着查找,在0位置放一个哨兵等于查找的值,如果查到哨兵则未找到。可以少在循环里判断一个值。
代码调试中的问题和解决过程
- 问题1:哈希查找的代码没头绪
- 问题1解决方案:
public class HashTablelink {
private final String TAG="HashTablelink";
private SortedList[] hashArray;
private int arraySize;
public HashTablelink(int size){
arraySize=size;
hashArray=new SortedList[arraySize];
for(int i=0;i<arraySize;i++){
hashArray[i]=new SortedList();
}
}
public void displayTable(){
StringBuilder sb=new StringBuilder();
sb.append("[");
for(int j=0;j<arraySize;j++){
sb.append(hashArray[j].toString());
sb.append(",");
}
sb.append("]");
Log.v(TAG,"HastTableLink的值为:"+sb.toString());
}
/**
* 首次哈希
* 将传入的key经过hash算法,这里使用的普通除以数组大小求余的方法,而实际不是这么简单
* @param key
* @return
*/
public int hashFunc(int key){
return key%arraySize;
}
/**
* 插入元素
*/
public void insert(LinkHash item){
int key=item.getKey();
int hashVal=hashFunc(key);//哈希到的下标位置
hashArray[hashVal].insert(item);
}
/**
* 删除元素
*/
public void delete(int key){
int hashVal=hashFunc(key);//哈希到的下标位置
hashArray[key].delete(key);
}
/**
* 查找元素
*/
public LinkHash find(int key){
int hashVal=hashFunc(key);//哈希到的下标位置
LinkHash theLink=hashArray[hashVal].find(key);
return theLink;
}
}
代码托管
结对及互评
- 代码中值得学习的或问题:
- 提出与课本不同的方法解决问题
- 基于评分标准,我给本博客打分:11分。得分情况如下:
- 正确使用Markdown语法加1分
- 模板中的要素齐全加1分
- 教材学习中的问题和解决过程, 二个问题加2分
- 代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的加2分
- 排版精美的加1分
- 代码Commit Message规范的加1分
- 有动手写新代码的加1分
- 结对学习情况真实可信的加1分
点评过的同学博客和代码
- 本周结对学习情况
- 20182331
- 阅读教材第13章章节内容
- 代码托管到码云上
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目,至少完成pp13.2,pp13.6
- 20182331
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 138/138 | 2/2 | 25/25 | 学会写和上传代码,会编简单的输出程序 |
第二周 | 88/226 | 1/3 | 30/55 | 起文件名不能太长 |
第三周 | 898/1124 | 2/5 | 35/90 | Java类里面的方法和C语言的函数很像 |
第四周 | 632/1756 | 2/7 | 30/120 | 可以用继承extends简化重复的代码 |
第五周 | 770/2526 | 2/9 | 45/165 | --amend -m可以重命名没push的文件 |
第六周 | 3947/6473 | 2/11 | 40/205 | 接口类的功能要分散,利用多继承完成功能 |
第七周 | 1359/7832 | 3/14 | 35/240 | |
第七周 | 273/8105 | 1/15 | 15/255 | 查找前先排序更好 |
参考资料
以上是关于20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
20182309 2019-2020-1 《数据结构与面向对象程序设计》实验九报告
20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结
20182323 2019-2020-1 《数据结构与面向对象程序设计》实验七报告
20182308 2019-2020-1 《数据结构与面向对象程序设计》实验六报告