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

    1.作业头

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-3/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11822
    这个作业的目标 1.让我们初步了解构造函数 2.让我们了解并且学会运用数组来解决问题
    学号 20209154

    一、本周教学内容&目标

    第七章 数组 7.17.1 输出所有大于平均值的数

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

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

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

    二、本周作业

    2.1 完成PTA作业,并给出编程题完成截图


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

    能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。
    解法一:采用穷举法,从数组中任意取出两个数字,计算两者之和是否为给定的数字。

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

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

    要求:

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

    解法一:

    解法二:

    解法三:

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

    解法一:是逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解
    解法二:是假设已知其中一个数,在数组中找出另一个数
    解法三:是运用了二分查找法,缩短了程序编译的时间

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

    排序算法有:冒泡排序、选择排序、直接插入排序、二分插入排序、希尔排序、快速排序、堆排序。

    冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,顺序不对就交换,直到没有相邻元素需要交换时排序完成
    
    选择排序:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾
    
    直接插入排序:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据
    
    二分插入排序:在一组有序的数据中,找到中间元素,如果中间元素比当前元素大,则当前元素要插入到中间元素的左侧;否则,当前元素要插入到中间元素的右侧,找到当前元素的插入位置 i 之后,把 i 和 i 之后的元素从后往前依次后移一个位置,然后再把当前元素放入位置 i。
    
    希尔排序:把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组
    
    快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序
    
    堆排序:Heap-Sort先调用Build-Max-Heap将数组改造为最大堆,然后将堆顶和堆底元素交换,之后将底部上升,最后重新调用Max-Heapify保持最大堆性质。由于堆顶元素必然是堆中最大的元素,所以一次操作之后,堆中存在的最大元素被分离出堆,重复n-1次之后,数组排列完毕。
    

    2.4 请给出本周学习总结

    1 学习进度条

    2 累积代码行和博客字数

    3 学习内容总结和感悟

    这周学习了构造函数和数组,我感觉数组好难,要哭辽,好多应该掌握的东西和题目我都不会,要多看书,多做题,脑瓜子要动起来。

    4 去了解冒泡排序,并用自己的话进行说明

    冒泡排序是对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    让程序后台隐藏运行
    只要你喜欢,并且可以养家糊口,就是好的
  • 原文地址:https://www.cnblogs.com/mxywzk/p/14513681.html
Copyright © 2011-2022 走看看