20162316刘诚昊 2017-2018-2 《Java程序设计》第三周学习总结

教材学习内容总结

1. 查找是在一组数据中找到指定的目标元素或判定组内不存在目标的过程,常用方法为线性查找和二分查找,而查找问题的大小由查找池中数据项的个数决定。

  • [ 线性查找] 从一端开始依次扫描查找池中的数据项。
  • [ 二分查找] 二分查找的前提是查找池数据有序。从数据中间开始查找,每次削减一半的范围量,直到找到目标元素或没有可行候选者。二分查找采用迭代方法,也可以使用递归,一般情况下,二分查找比线性查找更高效。

2. 排序是按照某些标准,将一组数据项按确定的次序重排。本章介绍五种排序算法。

  • [ 选择排序] 反复地将具体的值放到它最终的有序位置。
  • [ 插入排序] 反复将具体的值插入表的已有序的字表中。
  • [ 冒泡排序] 反复比较相邻元素若有必要就交换他们的次序。
  • [ 快速排序] 通过划分表,再递归地对子表排序。
  • [ 归并排序] 将表平分直至每个子表中只含有一个元素,再将这些子表并为有序表。

选择排序、冒泡排序算法的最优、最差以及平均复杂度情形都是O(n^2)。

插入排序的最差、平均的复杂度情形为O(n^2),而最优为O(n)。

并归排序的最差、平均以及最优的复杂度情形都是O(nlog2n)

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

  1. 除了书中介绍的需要自己编辑的通用方法,是否有包提供直接的排序方法?
  • static void sort(type[] a)

    采用优化的快速排序算法对数组进行排序。

    参数:a 类型为int、long、short、char、byte、boolean、float或double。

  • static int binarySearch(type[] a, type v )
  • static int binarySearch(type[] a, int start, int end,type v)

    采用二分搜索算法查找值v。如果查找成功,则返回相应的下标值;否则,返回一个负数值r。-r-1是为保持a有序v应插入的位置。

    参数: a
    类型为int、long、short、char、byte、boolean、float或double的有序数组。

    参数: start
    起始下标(包含这个值)

    参数:end
    终止下标(不包含这个值)

    参数:v
    同a的数据元素类型相同的值。

结对及互评

20162326齐力峰
齐力峰在本周督促我学习java,很有幸能有一位负责人的搭档。对于他的博客我觉得有点过于简洁,可以写的更详细一些。

转载于:https://www.cnblogs.com/ignor/p/7589126.html

20162316刘诚昊 《程序设计与数据结构》 第三周学习总结相关推荐

  1. 20162316刘诚昊 实验五-数据结构综合应用

    20162316刘诚昊 2017-2018-2 <Java程序设计>第五次实验 数据结构综合应用 实验链接: 实验五 Android Studio遇到的错误-1 实验五 图的实现与应用-2 ...

  2. 20162316刘诚昊 课程总结

    20162316刘诚昊 2016-2017-2<程序设计与数据结构>课程总结 目录: 每周作业链接汇总 写得最好的博客 阅读量最高的博客 实验报告链接汇总 团队项目报告链接汇总 代码托管链 ...

  3. 2017-2018-1 20162316刘诚昊 实验二 树

    20162316刘诚昊 2017-2018-2 <Java程序设计>第二次实验 树 实验链接: 实验二 树-1-实现二叉树 实验二 树-2-中序先序序列构造二叉树 实验二 树-3-决策树 ...

  4. 20162316刘诚昊 第五周学习总结

    20162316刘诚昊 2017-2018-2 <Java程序设计>第五周学习总结 教材学习内容总结 集合(Collection)是收集并组织其他对象的对象,它定义了访问及管理称为集合元素 ...

  5. 20162316刘诚昊 第十一周学习总结

    # 20162316刘诚昊 2017-2018-2 <Java程序设计>第十一周学习总结 教材学习内容总结 第十九章 图 1.图与树一样,由节点及节点之间的连接组成.分为有向图和无向图. ...

  6. 20162316刘诚昊 课下排序测试

    20162316刘诚昊 2017-2018-2 <Java程序设计>课下排序测试 实验要求 1 给定下列数据:90 8 7 56 123 235 9 1 653 用JDB或IDEA单步跟踪 ...

  7. 20162316刘诚昊 用链表实现队列

    20162316刘诚昊 2017-2018-2 <Java程序设计>用链表实现队列 实验要求 1 参考程序15.5给出方法deque,first,isEmpty,size,toString ...

  8. 20162316刘诚昊 用数组实现循环队列

    20162316刘诚昊 2017-2018-2 <Java程序设计>用数组实现循环队列 实验要求 1 参考程序15.6给出方法deque,first,isEmpty,size,toStri ...

  9. 2017-2018-1 20162316刘诚昊 实验三 查找与排序

    20162316刘诚昊 2017-2018-2 <Java程序设计>第三次实验 查找与排序 实验链接: 实验三 查找与排序-1 实验二 查找与排序-2 实验二 查找与排序-3 实验二 查找 ...

最新文章

  1. Ubuntu 16.04 安装 miniconda
  2. MediaCodec在Android视频硬解码组件的应用
  3. ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践
  4. 8、MySQL转义字符的使用
  5. android PowerManage
  6. 快速排序思路(前后指针版),代码实现
  7. dlut-KFQ概率上机1
  8. 面试问sql优化怎么回答
  9. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题
  10. Visio 图案填充-设置形状格式
  11. IIS6.0系统日志中出现此错误Timer_MinBytesPerSecond,Timer_ConnectionIdle
  12. 硬件基础知识(10)---元器件选型规范大全
  13. 极乐净土歌词-罗马音
  14. XXX单板类热仿真分析
  15. 80端口被屏蔽解决方法
  16. C语言实现钢琴块小游戏(低仿拉胯版)
  17. 官宣一一塔米狗企业并购图谱功能上线啦
  18. 圆桌:满足客人空座需求,准备最少的椅子,合理安排客人入座圆桌
  19. Anaconda+Pycharm下载及环境配置
  20. 卸载微软拼音输入法图解

热门文章

  1. Eclipse Tomcat调试timeout超时怎么办
  2. 更灵活的定位内存地址的方法---汇编学习笔记
  3. ShellExecuteA function
  4. Condition接口详解
  5. UNIX再学习 -- 用户 ID 和组 ID
  6. 二分匹配(匈牙利算法)
  7. 【译】Writing a Simple Linux Kernel Module
  8. libnghttp2 NDK 交叉编译
  9. TensorFlow-CIFAR10 CNN代码分析
  10. butterknife 源码分析