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

教材学习内容总结

1.查找


  • 线性查找:

    (对任意数组)顺序的对数组内的元素一个一个的进行比较,直到找到所查找元素。
  • 二分查找:

    (对有序数组)先比较整个数组中间的元素如果不是带查找元素,就与待查找元素比较,然后按照大小比较结果对以整个数组中间的元素为界再在分出的两个小数组中的其中一个实行同样的方法,以此类推直到查找到待查找元素为止。

2.排序


  • 选择排序:

    第一趟扫描整个表找出最小的一个元素然后将其与第一位的元素换位,第二趟从数组第二个位置开始扫描整个数组找出最小的元素与第二位元素换位,第三趟从数组第三个位置开始......以此类推,直到数组结束。
  • 插入排序:

    最初认为第一个元素是有序的,然后将除有序的元素外其他元素一个一个的插入到有序元素中正确的位置,直到将所有的无序元素都插入到有序序列为止。
  • 冒泡排序:

    每次循环将一个位置的元素与它后面位置的元素进行比较,如果有必要就换位置,然后下次循环用后面位置的元素与更后一位的元素进行比较换位,以此类推,每次一轮将会把某一个元素放置到相应位置,直到所有元素都到相应位置为止。
  • 快速排序:

    每一趟都用每个数组的第一位元素将数组分为两个(大于或小于该元素)数组,然后在每一个分数组依次的运用此方法,直到排序完成。
  • 归并排序:

    递归的将一个数组尽量平分为两部分,然后将分好的两部分再次均分,直到分为单个元素后再开始有序的将这些单个元素进行合并,每次两个一组的合并,直到还原为原本大小的数组为止。

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

问题1:

之前一直不理解为什么在查找排序时都要实现Comparable这个接口

解决方法:

查找API文档:

此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。

实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。

上周考试错题总结

错题代码:

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

计算以上代码的算法复杂度:

我的答案:O(n) 正确答案:O(n^1/2)
计算步骤:

  1. n = 1 + 2 + 3 + ... + T(n)
  2. n = T(n)*(T(n) + 1) / 2
  3. n = [ T(n)^2 + T(n) ] / 2
  4. 复杂度为O(n^1/2)

代码托管

结对及互评

这周我们学习的主要为排序和查找,因为课上老师说要考试,我和我的搭档还一起去图书馆一起讨论了双方对代码的理解,取长补短,各有进步,希望以后能增加这样讨论的次数,对我们彼此都有很好的帮助。

点评模板:

  • 博客中值得学习的或问题:

    • 界面很好看
    • 问题分析可以更详细
  • 其他
    希望我们结对在这学期能相互促进,技术更上一层楼。

    本周结对学习情况

    • 20162302
    • 结对学习内容
      • 一起讨论学习。

其他

通过这周的学习发现,一个假期缺少练习,对一些很基础的代码结构都已经不太熟悉了,导致在代码实现的时候总是出现一些很低级的错误,希望接下来的自己加快脚步尽快进入学习状态,提高自己的水平。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/200 1/2 10/20 了解数据结构及算法
第二周 664/500 2/3 10/20 系统的学习了查找和排序

参考资料

  • 《Java程序设计与数据结构教程(第二版)》

  • 《Java程序设计与数据结构教程(第二版)》学习指导
  • ...

转载于:https://www.cnblogs.com/Zhangxusheng/p/7588198.html

20162329张旭升 2017-2018-2 《程序设计与数据结构》第三周学习总结相关推荐

  1. 20162329 张旭升 2017 - 2018 《程序设计与数据结构》第五周总结

    20162329 2017-2018-1 <程序设计与数据结构>第五周学习总结 教材学习内容总结 1.学习目标 了解集合的概念 了解并使用抽象数据类型 初步了解使用Java泛型 学习栈这种 ...

  2. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...

  3. 20172304 《程序设计与数据结构》第九周学习总结

    20172304 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本章是第十五章,主要介绍了图的概念. 首先我来介绍一下图的基本结构. 从逻辑上讲,图是由边和结点组成的,在我的理解 ...

  4. 20162302 《程序设计与数据结构》第一周学习总结

    20162302 2017-2018-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 很多情况下时间和空间不可兼得.在不同的情况下,要么用时间换空间,要么用空间换时间. 引出算 ...

  5. 20172315 2017-2018-2 《程序设计与数据结构》第九周学习总结

    学号 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常是定义一个非正常情况或错误的对象,由程序或运行时环境抛出. 异常与错误不同,错误代表不可恢复的问题 ...

  6. 20172304 《程序设计与数据结构》 第二周学习总结

    20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合 ...

  7. 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结

    第九周学习总结 一.学习目标 二叉查找树的理解 二叉查找树的实现 平衡二叉查找树 哈夫曼树的实现 堆的理解 堆的实现 二.学习内容 1.二叉查找树 思路: 二叉查找树与一般二叉树的区别在于,二叉查找树 ...

  8. 20162303《程序设计与数据结构》第一周学习总结

    学号 2016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错 ...

  9. 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结

    2017-2018-1 学习总结目录: 1 2 3 5 6 7 9 10 11 12 目录 0. 本周学习内容总结 0.1 Comparable接口与Comparator接口的使用 0.2 泛型方法设 ...

  10. 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结

    教材学习内容总结 本周学习第十一章异常和第十二章 第十一章-异常 异常是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理. 错误和异常都是对象,代表非正常情况或 ...

最新文章

  1. java实现多级菜单(java递归)方法一
  2. 开放重定向(Open Redirection)
  3. 活久见!一美国大爷发明了永不掉链子的自行车,垂直踩踏即可驱动
  4. 《C++ Primer》14.3.1节练习
  5. 经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上
  6. 【激活函数】ReLU激活函数的思考
  7. Linux升级php
  8. 最短路径BFS算法matlab,迷宫的最短路径 bfs算法
  9. iOS 9 适配中出现的坑
  10. Gambit 5.调试
  11. 内网通积分|免广告工具
  12. “飞扬小字典” -- 辅助记忆的小工具
  13. TQ2440内核linux2.6.28移植
  14. svchost.exe 上传下载占用大量资源
  15. win10怎么更新显卡驱动_Intel发布核显新驱动:支持Win10 H2更新、11代酷睿狂喜-Intel,核显,驱动,Win10 ——快科技(驱动之家旗下媒体)-...
  16. OGL纹理之纹理过滤器和多级渐进纹理mipmap
  17. 科达与中航工业签署战略合作协议
  18. html 做填写的表格,CSS写的简单表格示例
  19. imac15款和17款区别_5K屏2019款iMac轻体验:优缺点都很明显
  20. php处理微信消息,微信开发之处理微信客户端发来的消息

热门文章

  1. C语言进阶及热点知识归纳
  2. Acro Multi-Language Class-Method for Devexpress VCL
  3. 马云创业坚持论不是真理
  4. TCP/IP 的三次握手和四次分手过程详解【图解】
  5. Quartus导出网表文件:.qxp和.vqm
  6. codevs1376帕秋莉•诺蕾姬 东方幻想乡系列模拟赛Stage 2[三星]
  7. 浅谈Kernel32.dll(Windows平台下必有的动态库文件)
  8. 【ESMM论文精读】Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion
  9. 十万个为什么之Hbase篇
  10. 可可西里从来不是诗意的远方