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

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

    教材学习内容总结

    一、查找

    1、两大方法:
    (1)线性查找:逐个进行比较,最后找到需要的那个。
     时间复杂度:O(n)
    (2)二分查找:在一个有序的序列中,将序列分成两半,在两个可行候选者之间找到适合的,然后再次进行二分。比起线性查找它的工作每次少了一半
    时间复杂度:O(logn)
    2、查找的相关知识点
    (1)查找池
    

    二、排序

    1、方法
    (1)选择排序:先扫描整个数组,找最小值,然后与第一位交换。然后再次扫描整个数组,找到次小的值,将这个数和数组第二位交换,如此类推,一直做到整个数组有序
    平均时间复杂度:O(n2)
    (2)插入排序:每次按顺序从序列中抽取一个数,并将这个数放在序列中正确的位置。
    平均时间复杂度:O(n2)
    (2)冒泡排序:序列中相邻的两个数进行比较,若为逆序,则进行交换,并重复进行这一系列的操作,最终得到正序的序列。
    平均时间复杂度:O(n2)
    (3)希尔排序:按照一定的间隔将序列分成若干小组,对这若干小组进行排序。组成新序列,再进行分组、排序,经过若干次后最终得到一个有序的序列
    平均时间复杂度:O(nlogn)
    (4)快速排序:选择一个数作为枢轴(一般来说选择第一个为枢轴),然后和其中一个数来比(一般按顺序来)若枢轴大于被比较的那个数,则换位置直到两边分别为均小于枢轴和均大于枢轴。然后分成两边再找枢轴,如此类推直到最后整个序列为一个有序的序列。
    平均时间复杂度:O(nlogn)
    (5)归并排序:将每个序列拆开,然后两两组合,将逆序的组进行调换,然后再两两组合、排序,最后得到一个有序的序列
    平均时间复杂度:O(nlogn)
    

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

    • 问题1:我看到插入排序的定义是这个:“每次从数列中取一个还没有取出过的数,并按照大小关系插入到已经取出的数中使得已经取出的数仍然有序。”但我当时不大理解究竟是怎么回事
    • 问题1解决方案:在经过同学的耐心解释以及加上例子的理解,我对插入排序的认识可以这么解释:一个无序序列,一个个数地抽取,抽出来的数放在合适的位置,最后组成一个有序的序列

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

    • 问题1:在程序13.1和程序13.2中我未能够明白为什么在target中要输入lastname和firstname才能够进行查找,缺少一个都会返回未能找到。
    • 问题1解决方案:经过和同学的探讨和调试之后,发现程序13.2中的查找方法被强制转型为程序13.1类,因此程序13.2元素之间的比较实际上是用的是程序13.1的比较。而程序13.1的中明确了先比较firstname,若不一样就回去去比较lastname,因此需要firstname和lastname两个参数。因此在程序13.2中要放入两个参数。

    代码托管

    上周考试错题总结

    • void fun3(int n)
      { int i=0,s=0;
      while (s<=n)
      { i++;
      s=s+i;
      }
      }

    求上面算法的时间复杂度

    我的答案:O(n)
    正确答案:O(n^(1/2))
    原因:循环的条件是:s<=n。s的增长为s=0+1+2+3+4+...+T(n)。可以简化为:(T(n)(T(n)+1))/2 = s, 即(T(n)(T(n)+1))/2 <= n n。T(n)^2+T(n) <= 2n。将低次项和 常数去掉 T(n) <= O(n^(1/2))

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • markdown语法正确,格式清晰。
      • 问题思考得比较深入

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

    这周有点懒,也觉得挺对不住自己,因此从现在这一刻起收拾好心情,专心学习。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 20/220 1/3 20/40
    第三周 645/865 1/4 14/564
  • 相关阅读:
    hdu1161 欧拉路
    ZOJ 3204 Connect them(字典序输出)
    [POJ1936]All in All
    [POJ1035]Spell checker
    [POJ2485]Highways
    [洛谷P3697]开心派对小火车
    【AIM Tech Round 5 (Div. 1 + Div. 2) 】
    What are the differences between an LES-SGS model and a RANS based turbulence model?
    How to permanently set $PATH on Linux/Unix?
    tar解压命令
  • 原文地址:https://www.cnblogs.com/VersionP1/p/7585295.html
Copyright © 2011-2022 走看看