zoukankan      html  css  js  c++  java
  • # 20162312 2017-2018-3 《程序设计与数据结构》第3周学习总结

    教材学习内容总结

    学习目标

    • 探讨线性及二分查找算法。
    • 探讨选择、插入、冒泡、快速及归并排序算法。
    • 讨论算法的复杂度分析技术。

    具体内容

    • 查找 查找是在一组数据项中找到指定的目标元素,或是判定组内部存在目标的过程。

    • 线性查找 线性查找是从一端开始以线性的方式扫描查找池。

    • 二分查找 二分查找算法借助于查找池中数据的有序性,在每次比较时去除查找池中的大部分元素。

    • 排序 排序是根据某些标准,将一组数据项按确定的次序重排,或为升序或为降序。

    • 选择排序 算法重复这样的过程,分别将每个值放到排好序的最终位置,从而完成一组值的排序。

    • 插入排序 算法重复地将一个具体的值插入到表中已有序的子序列中,从而完成一组值的排序。

    • 冒泡排序 算法重复地比较表中的相邻元素,如果他们呈逆序则交换它们。

    • 快速排序 算法根据任意选定的划分元素来对表进行划分,然后再递归地对划分元素两边的子段进行排序,从而完成对表的排序。

    • 归并排序 递归地对分表,知道每个子表只含有一个元素时为止,然后再将子表按序合并,从而完成对表的排序。

    • 希尔排序 把一个长序列分割为K个短序列进行高效的直接插入排序,形成一种“基本有序”的顺序; 再调用直接插入排序算法,对全体记录进行一个高效的排序。

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

    • 问题1:对归并排序的复杂度计算不是特别理解。
    • 问题1解决方案:我在网上查找了归并排序复杂度计算的相关资料:

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

    代码托管

    结对及互评

    本周结对学习情况

    • 20162324

    • 结对学习内容

      • 进行了查找排序方面的讨论

    思考

    对于查找排序的很多代码还要多看。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 6/6
    第二、三周 403/403 2/3 14/20

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

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

    • 计划学习时间:5小时

    • 实际学习时间:6小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    237. Delete Node in a Linked List
    430. Flatten a Multilevel Doubly Linked List
    707. Design Linked List
    83. Remove Duplicates from Sorted List
    160. Intersection of Two Linked Lists
    426. Convert Binary Search Tree to Sorted Doubly Linked List
    142. Linked List Cycle II
    类之间的关系
    初始化块
    明确类和对象
  • 原文地址:https://www.cnblogs.com/1zhjch/p/7588307.html
Copyright © 2011-2022 走看看