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

    20162304 2017-2018-1 《程序设计与数据结构》第三周学习总结

    教材学习内容总结

    • 本章的内容是查找与排序,课本的学习大概就分为两个部分:
    1. 查找:线性算法和二分查找算法的学习;
    2. 排序:选择、插入、冒泡、快速及归并排序算法;
    • 还有一点就是这些算法的算法复杂度的分析。

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

    • 问题1:看不太懂快速排序部分的代码
    • 问题1解决方案:通过对课本后面解释和一篇博客的研读有了一个较为初步的认识:过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

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

    • 问题1:对于书上归并排序代码不太理解。

    • 问题1解决方案:在学习后感觉以下代码更适合理解。

    public void Merge(int[] array, int low, int mid, int high) {
        int i = low; // i是第一段序列的下标
        int j = mid + 1; // j是第二段序列的下标
        int k = 0; // k是临时存放合并序列的下标
        int[] array2 = new int[high - low + 1]; // array2是临时合并序列
    
        // 扫描第一段和第二段序列,直到有一个扫描结束
        while (i <= mid && j <= high) {
            // 判断第一段和第二段取出的数哪个更小,将其存入合并序列,并继续向下扫描
            if (array[i] <= array[j]) {
                array2[k] = array[i];
                i++;
                k++;
            } else {
                array2[k] = array[j];
                j++;
                k++;
            }
        }
    
        // 若第一段序列还没扫描完,将其全部复制到合并序列
        while (i <= mid) {
            array2[k] = array[i];
            i++;
            k++;
        }
    
        // 若第二段序列还没扫描完,将其全部复制到合并序列
        while (j <= high) {
            array2[k] = array[j];
            j++;
            k++;
        }
    
        // 将合并序列复制到原始序列中
        for (k = 0, i = low; i <= high; i++, k++) {
            array[i] = array2[k];
        }
    }
    

    代码托管

    因为git出现了些问题,重新克隆一下码云,所以日志全显示今天,接下来准备重新创建一个项目作为这学期的学习项目。

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20162318
      • 结对照片
      • 结对学习内容
        • 查找与排序

    其他(感悟、思考等,可选)

    学习渐入佳境,感觉这周任务有点繁重,主要是因为校庆少听一节课,感觉有点吃力。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 10/10
    第二周 0/0 1/2 10/20
    第二周 163/163 1/3 12/32
    • 计划学习时间:10小时

    • 实际学习时间:12小时

    参考资料

  • 相关阅读:
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    3.1
    面向对象
  • 原文地址:https://www.cnblogs.com/zhanghaolin/p/7588377.html
Copyright © 2011-2022 走看看