• C语言II博客作业02


    一.作业头

    | 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-3 |
    | ---- | ---- | ---- |
    | 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11806 |
    | 这个作业的目标 | <学会使用数组以及各种排序法,对数组的了解,学习数组> |
    | 学号 | <20209019> |
    一.本周教学内容&目标
    第七章 数组 7.17.1 输出所有大于平均值的数

    1.学生知道在哪种情况下可以使用构造数据类型—数组进行数据的处理

    2.掌握用一维数组进行编程

    3.掌握选择排序法和二分查找法
    二.本周作业(总分:50分)
    2.1题目:快速寻找满足条件的两个数
    能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。

    解法一:采用穷举法,从数组中任意取出两个数字,计算两者之和是否为给定的数字。

    解法二:对数组中的每个数字arr[i]都判别Sum-arr[i]是否在数组中。

    解法三:对数组进行排序,然后使用二分查找法针对arr[i]查找Sum-arr[i]。
    解法一:

    数据处理

    输入数据 输出数据 说明
    3 5 2 1 no
    4 3 6 2 1 1 4 5 2 一组
    解法二:
    输入数据 输出数据 说明
    ---- ---- ----
    1 5 7 0 1 7 一组
    5 2 0 3 no

    解法三:

    输入数据 输出数据 说明
    3 2 1 0 no
    5 4 7 0 1 2 1 2 0 7 两组
    请说明三种算法的区别是什么?你还可以给出更好的算法吗?(10分)
    区别:第一种比较简单明了,前面两种的方法差不多属于差不多一个类型 一二中只是判断条件改变。
    重点是第三种,运用二分法对半缩小搜索范围,很大程度上提高了运行效率。
    2.3 请搜索有哪些排序算法,并用自己的理解对集中排序算法分别进行描述(5分)
    1.冒泡排序:从第一个数开始,与后面的每一个数比较只要满足小于该数就进行交换,这样往复就能够让小的数慢慢冒泡到前面。
    2.选择排序:首先在未排序的序列里找到最小(大)元素,放到序列的首端,再从剩余元素中找到最小(大)的元素,放到序列的尾端。依次循环,直到排序完成。
    (找一大一小的数进行多次替换实现排序)
    3.快速排序:将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序,是冒泡排序的一种的改进方法。
    4.归并排序:采用分治法的一个非常典型的应用。
    **2.4 请给出本周学习总结(15分)
    学习进度条(5分)
    日期 所发时间
    ---- ---- ----
    第一周 3.2-3.4 5h
    第二周 3.11-3.26 5h
    3 .学习内容总结和感悟(5分)
    数组的定义,初始化,利用数组编程,以及各种排序,他们的区别。
  • 相关阅读:
    SQL JOIN
    string.Empty, "" 和 null 三者的区别
    java JDBC
    java 自定义注解
    Spring Bean自动检测
    Spring Aware接口
    IObservable 接口
    CloseHandle()函数的使用
    [置顶] 记一次讲座与前辈的对话
    让用户关上门说话:覆盖全美6000个社区的邻居私密社交网站Nextdoor是如何壮大的?
  • 原文地址:https://www.cnblogs.com/Qudd/p/14589582.html
Copyright © 2020-2023  润新知