zoukankan      html  css  js  c++  java
  • # 学号12 2016-2017-2 《程序设计与数据结构》第9周学习总结

    教材学习内容总结

    学习目标

    • 定义堆并讨论它的特殊用途

    • 讨论堆的链式实现方式

    • 讨论堆排序

    • 定义优先队列和它与堆的关系

    二叉查找树的性质

    • 堆中某个结点的值总是不大于(或不小于)其父结点的值;

    • 堆总是一棵完全二叉树。

    • 堆允许程序在运行时动态地申请某个大小的内存空间

    • 插入:向堆中插入一个新元素;在数组的最末尾插入新结点。然后自下而上调整子结点与父结点:比较当前结点与父结点,不满足堆性质则交换,使得当前子树满足二叉堆的性质。时间复杂度为 O(logn)。

    教材学习中的问题和解决过程

    • 问题1:优先队列不是很理解

    • 问题1解决方案:查阅了相关资料促进了理解: 
      插入操作:插入操作是将一个元素插入到集合S中,首先把该元素放入所有元素的下一位置,然后执行“上浮”操作,如下图示例(注意,下图示例是小堆,不过原理是一样的

    移除操作: 优先队列中,在队列非空情况下移除集合中第一个元素,也就是下标为0的元素,然后将集合中最后一个元素移到下标为0位置,在将下标为0的新元素执行“下沉”操作。如下图示例(注意,下图示例是小堆,不过原理是一样的,图片来自深入理解Java PriorityQueue)

    代码调试中的问题和解决过程

    • 问题:PeiorityQueueNode类一直有问题,找不到原因

    • 解决方案:询问了课代表,后来知道这是书上代码出现了问题,按照老师给的图片进行修改后就可以了。

    错题及总结(第七周课下测试忘做了,时间已经截止)

    代码托管

    结对及互评

    讨论了堆与栈的区别

    本周结对学习情况

    思考

    学习还需要进一步深入

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 6/6
    第二、三周 403/403 2/3 14/20
    第4、5周 1452/1855 2/5 8/28
    第6周 231/2086 1/6 8/36
    第七周 620/2706 2/8 8/44
    第八周 722/3428 2/10 8/52
    第九周 1022/4450 1/11 8/60

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:9小时

    • 实际学习时间:8小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    EF基于方法的查询语法
    &,^,|,的简化计算与理解
    会计中阿拉伯数字变数字繁体大写
    接口对接请求方法
    经验总结之Android framework开发
    android开机过程简单描述
    为什么一个类的全局变量默认以m开头?
    使用DataOutputStream写入int类型数字不能显示
    20151128学习总结
    sky简介
  • 原文地址:https://www.cnblogs.com/1zhjch/p/7788077.html
Copyright © 2011-2022 走看看