20162310 《程序设计与数据结构》课程总结
20162310 《程序设计与数据结构》课程总结
每周作业链接汇总
第一周作业:
- 本章从效率的角度来介绍了我们在软件开发中所要注意的地方
- 引入了增大函数和大O符号的概念
- 算法分析师计算机科学的基础课题
- 处理器速度的提升和内存不能弥补算法效率的差异
第三周作业:
- 查找实在一组项内找到指定目标或是确定目标不存在的过程。
- 查找使得比较的次数最少。
- Comparable接口允许多态实现算法,而不是只应用于特定的类。
- 二分查找利用了查找池有序的这个特性。
- 二分查找的每次比较都排除了一半的可行候选数据。
- 排序是按某种标准将一列数据项确定的次序重排的过程。
- 二分查找有对数阶的复杂度,对于大的查找池来说,这非常有效率。
- 选择排序、插入排序及冒泡排序的平均运行时间复杂度是O(n^2)。
- 快速排序的关键是选择一个好的划分元素。
- 归并排序的最差运行时间复杂度是O(n log n)。
第五周作业:
- 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素,例如按层次或是按网络的方式)。
- 集合中元素之间的组织方式通常由两个因素决定,一、它们加入集合的次序。二、元素之间的固有关系。
- 抽象数据类型(ADT)忽略许多的细节为的是方便控制复杂的系统。
- 栈集合以LIFO的方式处理元素
- 泛型是本章的重点,有使用栈来实现计算后缀表达式
- 使用数组或链表来实现栈是本章的练习重点
第六周作业:
- 本章讨论队列的处理
- 队列ADT的学习
- 与栈进行比较性学习
- 队列的目标是保持原来的顺序
- 了解队列在Caesar密码中的运用
- 模拟票务柜台
- 学习通过链表实现队列
- 使用循环数组实现队列
第七周作业:
- 非线性结构树的学习
- 树是一对多或多对多的形式
- 一个树只有一个根节点(root),父节点和孩节点的概念是相对的,没有孩节点的节点称为叶节点
- 树的实现也有两种形式,数组和链表。
- 树的常见的几种分类:二叉树,平衡二叉树,B 树,B+ 树,哈夫曼树,堆,红黑树
第九周作业:
- 堆的学习及其方法的应用
- 堆排序利用堆的基本特征对一组元素进行排序
第十周作业:
- 无向图,特别的,如果无向图中连接顶点的边数达到最大,则图为完全图
- 路径是图中连接两个顶点的边的序列
- 第一个顶点和最后一个顶点相同且边不重复的路径称为环
- 有向图
- 在有向图中,边是顶点的有序对
- 有向图中的路径是连接图中两个顶点的有向边的序列
- 带权图的定义是图的每条边上都有对应的权值的图
- 图算法
第十一周作业:
- 图的遍历
- 图中的树问题
自认为写得最好一篇博客是?为什么?
作业中阅读量最高的一篇博客是?谈谈经验
实验报告链接汇总
团队项目报告链接汇总
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
会修改才是真正读懂代码
积极主动敲代码做到没?教材实践上有什么经验教训?
还是不够,融会贯通,应尝试用多种方法实现一个目标,以发现哪一条路好
课堂实践对提高应用能力有帮助吗?
有的,提高了我们的动手能力。
课堂实践上自己有什么经验教训?
节约时间,在短时间内高度集中注意力才能把项目做出来
课堂实践上对老师有什么教学建议?
可以有实践前的模拟训练并进行讲解,减少实践项目的数量,将富余的时间放在模拟训练上
课程收获与不足
自己的收获(投入,效率,效果等)
本学期我对于Java的投入一周10h左右,效率上面一直在提升,效果上来说还是可疑的
自己需要改进的地方
硬知识仍需提升,对于算法和代码需要自己的深入的理解
结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
本学期和结对伙伴的交流不频繁,但是有经常一起探讨树上的问题
问卷调查
你平均每周投入到本课程有效学习时间有多少?
10小时左右
每周的学习效率有提高吗?你是怎么衡量的?
有的,衡量标准就是时间利用率
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
有的,里面保存着许多资源,PPT和视频资料对我有很大帮助,做得很好,无意见
你觉得这门课老师应该继续做哪一件事情?
无
你觉得这门课老师应该停止做哪一件事情?
无
你觉得这门课老师应该开始做什么新的事情?
无
你如何评价出门门票和做笔记的要求?
可以