zoukankan      html  css  js  c++  java
  • C语言II博客作业02

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11824
    这个作业的目标 掌握二分排序法和选择排序法
    学号 20209076

    一、本周教学内容&目标
    第七章 数组 7.17.1 输出所有大于平均值的数

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

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

    3.掌握选择排序法和二分查找法

    二、本周作业(总分:50分)

    2.1 完成PTA作业,并给出编程题完成截图(5分)

    2.2 题目:快速寻找满足条件的两个数

    能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。

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

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

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

    要求:

    1.根据三种解法给出相应的代码,并给出测试数据。(15分)

    第一种解法:


    第二种解法:

    第三种解法:

    2.请说明三种算法的区别是什么?你还可以给出更好的算法吗?(10分)

    第一种算法是穷举法,这个写法很简单,写起来也比较容易,但是效率不高
    第二种算法运用了数组,可根本上没有提高效率
    第三种是二分查找法,查找效率较高,但前提是数组元素必须有序

    2.3 请搜索有哪些排序算法,并用自己的理解对集中排序算法分别进行描述(5分)

    交换排序:借鉴了求最大值,最小值的思想,按升序排列的基本过程为:先将第一个数分别与后面的数进行比较,若后面是的数小,
    则交换和第一个数的位置,否则不交换:这一轮结束之后,则求除了一个最小的放在第一个位置,然后进行第二轮比较,但这种交
    换效率低
    冒泡排序:将相邻两个数进行交换,重复的过程,一般,如果有N个数进行排序,则需进行N-1起泡
    选择排序:在交换排序的基础上,找出余下的数中的最大值再与地I+1个数进行交换,这样每一轮比较中最多只有一次交换操作,这个算法最多只有N—1次交换操作

    2.4 请给出本周学习总结(15分)

    1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 所学到的知识点
    第一周 8小时 100 独立造测数据
    第二周 8小时 105 一维数组的编程 选择排序法 二分查找法

    2 累积代码行和博客字数(5分)

    3 学习内容总结和感悟(5分)

    感悟:

    自学能力有待加强,遇到新知识点需要沉下心来看书,不要急于求成,
    知识点的了解要透彻,不然容易出问题和遗忘。

  • 相关阅读:
    word设置的密码忘了怎么办?
    Navicat Report Viewer 设置 HTTP 的方法
    如何处理Navicat Report Viewer 报表
    excel密码忘记了怎么办
    Beyond Compare文本比较搜索功能详解
    Popular Cows POJ
    Problem B. Harvest of Apples HDU
    网络流模型整理
    The Shortest Statement CodeForces
    Vasya and Multisets CodeForces
  • 原文地址:https://www.cnblogs.com/mzhy/p/14564685.html
Copyright © 2011-2022 走看看